C#3.0新特性(二)-初始值設定項

來源:互聯網
上載者:User

寫在前邊:

做事不堅持,是我這麼多年來最失敗的地方,從今天開始改正,沒有人也沒有動力督促,只能靠自己的決心和行動,來證明...。今天來學學自動屬性,初始值設定項,或叫初始化器。本人知道,這樣的內容在網上早有了,不知能不能放首頁。再放一次,聽聽前輩同仁們的意見。

一、自動屬性:

在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"};

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.