程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C# 3.0 的自動屬性(Automatic Properties)

C# 3.0 的自動屬性(Automatic Properties)

編輯:.NET實例教程


使用自動屬性後,你可以不用手工聲明一個私有成員變量以及編寫get/set邏輯,取而代之的是,編譯器會自動為你生成一個私有變量和默認的get/set 操作。系統為你產生的私有變量在IDE中,你是看不到的,如下圖:

 

當然如果你希望屬性中有些賦值或者取值邏輯校驗,自動屬性可是不適合你的。

上面的代碼我們編譯後,再用 Reflector 反編譯後,我們可以看到上述代碼中的屬性變成了如下代碼:這個編譯器給我們產生的私有變量,顯然不是那麼容易重名的。


[CompilerGenerated] 
private string <>k__AutomaticallyGeneratedPropertyFIEld0; 

public string Name 

[CompilerGenerated] 
get 

return this.<>k__AutomaticallyGeneratedPropertyFIEld0; 


[CompilerGenerated] 
set 

this.<>k__AutomaticallyGeneratedPropertyFIEld0 = value; 


注意:如果你只希望屬性有 get 或者 set 方法,這些情況都是無法使用 自動屬性的,需要你自己來書寫。否則就會報如下的錯誤:

'ConsoleApplication1.MyClass.Name.set' must declare a body because it is not marked abstract or extern. Automatically implemented propertIEs must define both get and set Accessors.

但是 get 和 set 訪問級別不一樣,比如一個是 public,一個是 internal,則可以書寫成下述方式,而不會報錯誤。

public int ID { get; internal set; }


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