摘要:C# 3.0新特性
公司的技術分享所分享的主題,
整理出來的文字敘述。
C# 3.0 八項新功能:
1. 隱含型別推斷(Local Variable Type Inference)
利用var關鍵字宣告變數,以初始值來推斷其型別,使程式敘述語句精簡。
限制:
(1)var 為關鍵字,依照後方給的參數來決定型態。
(2)初始時就必須給值,不可空白或給 NULL。
(3)型態一經初始決定後,只能儲存同型態的值。
(4)隱含型別可以指定陣列,但陣列的值必須為相同型態。
利用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以前,對於已定義完成的型別,是無法擴充其行為的,如果要擴充,我們可能需要利用繼承或合成的方式來定義一個新的類別。但是,這樣的話,我們需要學習使用這個新類別,擴充方法讓我們可以擴充已經存在的型別的行為。
C# 2.0以前,對於已定義完成的型別,是無法擴充其行為的,如果要擴充,我們可能需要利用繼承或合成的方式來定義一個新的類別。但是,這樣的話,我們需要學習使用這個新類別,擴充方法讓我們可以擴充已經存在的型別的行為。
7. 自動屬性實作(Auto-Implemented Properties)
可以讓我們以更簡單的描述來定義簡單存取的屬性。
可以讓我們以更簡單的描述來定義簡單存取的屬性。
8. 部分方法定義(Partial Method Definitions)
將方法的定義及實作分開。
限制:
部分方法只能出現在部分類別之中。
部分方法必須是private的,並且回傳值必須是void。
部分方法參數不能帶有out修飾字。
部分方法不可以是virtual、extern的。
將方法的定義及實作分開。
限制:
部分方法只能出現在部分類別之中。
部分方法必須是private的,並且回傳值必須是void。
部分方法參數不能帶有out修飾字。
部分方法不可以是virtual、extern的。