程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> c#3.0學習 - 匿名類型

c#3.0學習 - 匿名類型

編輯:關於C#

匿名類型是在初始化的時候根據初始化列表自動產生類型的一種機制,利用對象初始化器來創建匿名對象的對象。如:

var oec=new {Name="oec2003", Age=100}

在創建對象的語句中用到了var和new兩個關鍵字,

var關鍵字用來聲明一個匿名類型的對象名字,var和Object不同,她是一種強類型,在此是起到了一個占位符的作用,編譯時編譯器會推斷出實際類型。

new關鍵字後直接是一對大括號,並不是類型名稱,因為匿名類型的名字是在編譯時由編譯器自動生成。大括號裡的Name和Age為匿名類型的屬性,可以看到是在Name和Age的後面直接賦值,並沒有指明類型,也將由編譯器來推斷出他們的類型,比如編譯後會將Name推斷為string型,Age推斷為Int型。所以我們可以看到匿名類型給我們帶來了很大的方面和靈活性,同時也將使代碼變得不易看懂。

上面的代碼經過編譯後會產生類似如下代碼

class Anonymous1
{
  private int _name = oec2003;
  private int _age = 100;
  
  public int a
  {
    get { return _name; }
    set { _name = value; }
  }
  public int b
  {  get { return _age; }
    set { _age = value; }
  }
}

在同一個程序中如果定義的不同匿名類型中的對象初始化器中的名稱,類型,和順序都相同,將會長生同一個匿名類型的不同實例,如下:

var oec1=new {Name="oec2003" ,Age=100}
var oec2=new {Name="oec2004" ,Age=200}
oec1=oec2

我們可以這樣來訪問匿名類型中的成員

var oec=new {Name="oec2003", Age=100}
string name=oec.Name;
int age=oec.Age

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