《深入理解C# 3.x的新特性》博文系列匯總

來源:互聯網
上載者:User

較之C# 2.0, C# 3.x引入了一系列新的特性,為我們編程帶來很大的便利,通過有效地利用這些新特性,我們可以編寫出更加簡潔、優雅的程式。不過這些新特性僅僅是編譯器給我們耍的小花招:在編譯的時候加入一些必要的Code,使這些在C# 2.0角度看略顯“殘缺”的Code變得“完整”,實際上最終產生的Assembly和在C# 2.0時代並沒有本質的不同。為此,有些人對這些新特性不以為然,覺得僅僅是一些表面文章。但是我的觀點是:既然這些特效能給我們帶來便利,幹嘛不用呢?

本系列的著重點並不是放在如果去應用這些新特性上(實際上使用這些特性是很簡單的),而是更多地落在對這些特性的實現的介紹上面:編譯器到底在編譯的時候加了哪些額外的代碼來完善這些略顯“殘缺”的代碼。
[第1篇] Anonymous Type
Anonymous Type允許我們定義一個對象並初始化一組任意的屬性列表,而這個對象對應的Type並不是預先定義的。比如:

   1: var v = new{ID = Guid.NewGuid(), Name= "Zhang San" };

 

[第2篇] Extension Method
通過Extension Method,我們可以不改變Type定義的前提下對其方法成員進行擴充:我們在另一個Type中定一個一個特性的Static 方法,使之作為這個Type的Extension Method,這樣的方法可以象其它方法一樣的方法進行調用。LINQ的Operator,比如Where,From,Order by等,都是通過這樣的進行定義的。

 

[第3篇] Lambda Expression

Lambda Expression被廣泛使用到LINQ中,其本質就是一個Delegate。在這部分中,我將介紹Lambda Expression是如何通過一個Delegate來實現的。

 

[第4篇] Automatically Impemented Property

有了Automatically Implemented Property,我們可以簡化傳統的private field + public property的屬性定義方式,就像這樣:

   1: public class Vector 

   2: {

   3:      public double X { get; set; }

   4:      public double Y { get; set; }

   5: }

 

[第5篇] Object Initializer & Collection Initializer

Object Initializer & Collection Initializer是我將對象的建立和初始化合二為一:通過Object Initializer使用一次調用建立一個對象和初始化其屬性成員,通過Collection Initializer在建立Collection對象的時候同時初始化該Collection的初始成員: 

   1: Vector v = new Vector { X = 1, Y = 2 };          

   2: IList<string> list = new List<string> { "Zhang San", "Li Si", "Wang Wu" };

作者:Artech
出處:http://artech.cnblogs.com/
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.