1: using System; 2: 3: public class House 4: { 5: PRivate int m_nSqFeet; 6: 7: public int SquareFeet 8: { 9: get { return m_nSqFeet; } 10: set { m_nSqFeet = value; } 11: } 12: } 13: 14: class TestApp 15: { 16: public static void Main() 17: { 18: House myHouse = new House(); 19: myHouse.SquareFeet = 250; 20: Console.WriteLine(myHouse.SquareFeet); 21: } 22: }
House類有一個命名為SquareFeet的屬性,它可以被讀和寫。實際的值存儲在一個可以從類內部訪問的變量中——如果 你想當作一個域成員重寫它,你所要做的就是忽略存取標志而把變量重新定義為: public int SquareFeet; 對于一個如此簡單的變量,這樣不錯。但是,如果你想要隱藏類內部存儲結構的細節時,就應該采用存取標志。在這種情 況下,set 存取標志給值參數中的屬性傳遞新值。(可以改名,見第10行。) 除了能夠隱藏實現細節外,你還可自由地限定各種操作: get和set:允許對屬性進行讀寫訪問。 get only:只允許讀屬性的值。 set only:只允許寫屬性的值。 除此之外,你可以獲得實現在set標志中有效代碼的機會。例如,由于種種原因(或根本沒有原因),你就能夠拒絕一個新 值。最好是沒有人告訴你它是一個動態屬性——當你第一次請求它后,它會保存下來,故要盡可能地推遲資源分配。
5.4 索引 你想過象訪問數組那樣使用索引訪問類嗎 ?使用C#的索引功能,對它的期待便可了結。
語法基本上象這樣: 屬性 修飾符 聲明 { 聲明內容}
具體的例子為 public string this[int nIndex] { get { ... } set { ... } }