程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#3.0新特性(二)-初始值設定項(1)

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

編輯:關於C語言

寫在前邊:

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

一、自動屬性:

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

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