寫在前邊:
做事不堅持,是我這麼多年來最失敗的地方,從今天開始改正,沒有人也沒有動力督促,只能靠自己的決心和行動,來證明...。今天來學學自動屬性,初始值設定項,或叫初始化器。本人知道,這樣的內容在網上早有了,不知能不能放首頁。再放一次,聽聽前輩同仁們的意見。
一、自動屬性:
在C# 2.0中,我們對成員進行封裝,也就是自動屬性,如下樣本:
private int m_one;
public int One
{
get { return m_one; }
set { m_one = value; }
}
這種方式只需寫第一句代碼,然後用Visual Studio的Refactor->Encapsulate Field功能,很方便,也早已經為大家熟知。而在C# 3.0中,我們只需要寫成如下一句就可以了:
public int Dne { get; set; }// Auto-implemented properties
可以看出,C# 3.0中這種自動屬性對C# 2.0中的屬性寫法作了大大的簡化。C# 3.0的自動屬性就不需要建立私人變數,而把這個工作交給編譯器代勞!當然,如果需要在擷取訪問器get或設定訪問器set裡頭添加一些邏輯,擴充也很方便。
二、物件初始設定式
使用物件初始設定式可以在建立對象時向對象的任何可訪問的欄位或屬性分配值,而無需顯式調用建構函式。物件初始設定式,我在很多地方看到,其名稱,又叫對象初始化器。看執行個體,以前,我們首先定義一個類:
public class MyClass
{
public string Number { get; set; }
public string Name { get; set; }
public MyClass()
{
}
public MyClass(string newID)
{
Number = newID;
}
public MyClass(string newID, string newName)
{
Number = newID;
Name = newName;
}
}
然後,new一個對象,並對其屬性初始化:
public static void newObject()
{
MyClass cobject = new MyClass();
cobject.Name = "yy";
cobject.Number = "1111";
MyClass dobject = new MyClass("1111");
dobject.Name = "yy";
MyClass eobject = new MyClass("1111","yy");
}
現在,在C# 3.0中,利用對象初始化器,new一個對象,並對可以訪問的屬性初始化,只需要如下一句代碼:
MyClass nobject = new MyClass{Name = "yy",Number = "1111"};