C#匿名類型簡單介紹
C# 3.0新語言特性還是比較常見的東西,這里我們主要介紹C#匿名類型,包括介紹C#匿名類型允許定義行內類型,無須顯式定義類型等方面。
總體來說,Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基礎之上,.NET2.0核心本身將不再變化(如果不了解.NET2.0的朋友,請參看MSDN或者一些經典的書籍),C# 3.0新語言特性在.NET2.0基礎上進行了改進,這些改進的功能可以大大簡化我們編寫程序。關于C# 3.0新語言特性在博客園里的很多朋友都介紹了,我在這里簡單介紹一下,記錄自己所學的東西,也為后面的LINQ打下基礎。
C# 3.0新語言特性和改進包括:
◆自動屬性(Auto-Implemented Properties)
◆隱含類型局部變量(Local Variable Type Inference)
◆匿名類型(Anonymous Types)
◆對象與集合初始化器(Object and Collection Initializers)
◆擴展方法(Extension Methods)
◆Lambda表達式和Lambda表達式樹 (Lambda Expression and Lambda Expression Trees)
C#匿名類型(Anonymous Types)
C#匿名類型允許定義行內類型,無須顯式定義類型。常和var配合使用來聲明匿名類型。
- var p1 = new { Id = 1, Name = "YJingLee", Age = 22 };//屬性也不需要申明
- var p2 = new { Id = 2, Name = "XieQing", Age = 25 };
- p1 = p2;//p1,p2結構相同,可以互相賦值
在這里編譯器會認為p1,p2相當于:
- public class SomeType
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public int Age { get; set; }
- }
那么數組怎么定義呢?使用"new[]"關鍵字來聲明數組,加上數組的初始值列表。像這樣:
- var intArray = new[] { 2, 3, 5, 6 };
- var strArray = new[] { "Hello", "World" };
- var anonymousTypeArray = new[]
- {
- new { Name = "YJingLee", Age = 22 },
- new { Name = "XieQing", Age = 25 }
- };
- var a = intArray[0];
- var b = strArray[0];
- var c = anonymousTypeArray[1].Name;
C#匿名類型要點:
1. 可以使用new關鍵字調用匿名初始化器創建一個匿名類型的對象。
2. 匿名類型直接繼承自System. Object。
3. 匿名類型的成員是編譯器根據初始化器推斷而來的一些讀寫屬性。
【編輯推薦】