C# 3.0新特性

摘要:C# 3.0新特性

公司的技術分享所分享的主題,

整理出來的文字敘述。


C# 3.0 八項新功能:

1.          隱含型別推斷(Local Variable Type Inference)
利用var關鍵字宣告變數,以初始值來推斷其型別,使程式敘述語句精簡。
限制
(1)var
為關鍵字,依照後方給的參數來決定型態
(2)
初始時就必須給值,不可空白或給 NULL
(3)
型態一經初始決定後,只能儲存同型態的值。
(4)
隱含型別可以指定陣列,但陣列的值必須為相同型態。
2.          物件初始化設定(Object Initializers)
除了使用建構子來初始化物件,在同一行可以指定屬性值,使初始化物件的程式碼精簡化。
3.          集合初始化設定(Collection Initializers)
在宣告集合物件的同時,給予集合項目初始化,搭配物件初始化設定更顯威力。
4.          匿名型別(Anonymous Types)
如果要產生一個物件來使用,必需定義其類別,但是,有時候我們需要的物件其定義只用在局部,且用完即丟,可以使用匿名型別來動態定義並實作物件。
5.          Lambda表示式(Lambda Expressions)
比匿名函式更精簡的函式定義。
6.          擴充方法(Extension Methods)
C# 2.0以前,對於已定義完成的型別,是無法擴充其行為的,如果要擴充,我們可能需要利用繼承或合成的方式來定義一個新的類別。但是,這樣的話,我們需要學習使用這個新類別,擴充方法讓我們可以擴充已經存在的型別的行為。
7.          自動屬性實作(Auto-Implemented Properties)
可以讓我們以更簡單的描述來定義簡單存取的屬性。
8.          部分方法定義(Partial Method Definitions)
將方法的定義及實作分開。
限制:
部分方法只能出現在部分類別之中。
部分方法必須是private的,並且回傳值必須是void。
部分方法參數不能帶有out修飾字。
部分方法不可以是virtual、extern的。