程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 對類中的保護成員進行寫操作(邀請大家拍磚)

C# 對類中的保護成員進行寫操作(邀請大家拍磚)

編輯:C#入門知識

假如我有一個類庫 Lib,提供一個類 ClassA 對外服務,ClassA 中有若干只讀屬性 PropA, PropB 等等,外部調用者無法對 ClassA 中的 PropA 和 PropB 進行寫操作,於是我可以這樣定義:   復制代碼 namespace Lib {     public class ClassA     {         public string PropA         {             get;             private set;         }           public  string PropB         {             get;             private set;           }     }         } 復制代碼 但是我在 Lib 庫中的 ClassB 需要對 ClassA 中的 PropA 屬性進行寫操作,怎麼辦?如果開放 ClassA 的 set 為 public 會破壞邏輯。我的做法是定義一個接口 IMemberSetter 負責對成員進行寫入。   復制代碼 namespace Lib {     interface IMemberSetter     {         void SetMember(string member, object value);     } } 復制代碼 然後在 ClassA 中實現該接口,並修改代碼如下:   復制代碼 namespace Lib {     public class ClassA : IMemberSetter     {         private string propA;         private string propB;           public string PropA         {             get { return propA; }         }           public  string PropB         {             get {return propB; }         }           void IMemberSetter.SetMember(string member, object value)         {             switch(member)             {                 case "PropA":                     this.propA = (string)value;                     break;                   case "PropB":                     this.propB = (string)value;                     break;             }         }     }         } 復制代碼 當 ClassB 想要修改 ClassA 中的某個屬性時,只要將 ClassA 轉換為 IMemberSetter 接口訪問,然後調用 SetMember 方法即可。   這個思路希望能夠得到大家拍磚,因為如果可行的話我會將它融入下一個項目當中。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved