[C#]匿名型別

  • 7083
  • 0

匿名型別可以把一些有關聯的資料直接封裝成物件傳遞,而不需要再定義新的類別

 

簡介

匿名型別可以把一些有關聯的資料直接封裝成物件傳遞,而不需要再定義新的類別

 

使用

匿名型別需要用 new 建立物件實體,但因為沒有類別名稱,因此使用 var 關鍵字宣告為隱含型別區域變數,紀錄匿名型別變數的參考

var 變數 = new {[屬性名稱1 = ] 值1, [屬性名稱2 = ] 值2 ...   };

以下範例功能為宣告變數 person,暫存封裝姓名 Name 與年齡 age 的匿名型別物件

var person = new { Name = "小歐ou", age = 26 };

建立後,有宣告資料對應的屬性名稱時,可透過屬性名稱取出資料,如下範例取出先前例子中封裝在匿名型別物件中的資料

MessageBox.Show("姓名 : " + person.Name);
MessageBox.Show("年齡 : " + person.age);

 

注意

匿名型別物件中建立的屬性是唯獨,此外,匿名型別不能宣告方法、事件等一般物件的其他成員。

如果兩個或兩個以上的匿名型別有相同編號以及相同順序的屬性型別,編譯器會將它們視為相同型別,且這些匿名型別會共用相同編譯器產生的型別資訊。

 

相關參考與連結

匿名型別 (C# 程式設計手冊)

Tuples, Anonymous Types, and Concrete Types