C 3 0新特性之匿名型別

2021-05-22 18:08:28 字數 761 閱讀 2133

c#3.0允許將

new和乙個匿名物件初始化器一起來建立乙個匿名型別的物件。具體語法格式為:

匿名物件建立表示式:

new

匿名物件初始化器

匿名物件初始化器:

成員宣告器列表:

成員宣告器

成員宣告器列表,成員宣告器

成員宣告器:

簡單名稱

成員訪問

識別符號=

表示式(

賦值表示式

)注:簡單名稱就是已經定義在當前範圍可訪問的識別符號(變數名)。成員訪問就是通過「.」分割的表示式。

例項:rectangle

r = new rectangle() , p2 = };

//匿名型別包含name和p1兩個唯讀成員

varanytype = new ;  //r物件的成員訪問

//匿名型別包含r和i兩個唯讀成員

var testtype = new ;//r物件簡單名稱

注意:1 匿名型別中的成員都是唯讀的。

2 成員的型別根據賦值表示式來推導出實際型別(賦值表示式在編譯時不能為null),

不能在**中指定成員型別。

3 如果兩個匿名型別建立表示式的成員變數名相同,並且經過推導出的變數的

型別和順序也相同,那麼這兩個匿名型別物件是兩個同一匿名型別的例項,

例如:

varp1 = new ;

var p2 = new ;

p1 = p2;

C 3 0特性之 匿名型別

匿名型別提供了一種方便的方法,可用來將一組唯讀屬性封裝到單個物件中,而無需首先顯式定義乙個型別。型別名由編譯器生成,並且不能在源 級使用。每個屬性的型別由編譯器推斷。可通過使用 new 運算子和物件初始值建立匿名型別。var person new console.writeline date.use...

C 3 0 新特性學習筆記 3 匿名型別

有些時候我們需要臨時儲存一些運算的中間結果,特別是當這些中間結果是由多個部份組成時,我們常常會去宣告乙個新的型別,以方便儲存這些中間結果。表面上看起來這很正常,而細想之後就會發現,這個新型別只服務於這個函式,其它地方都不會再使用它了,就為這乙個函式而去定義乙個新的型別,確實有些麻煩。現在,c 3.0...

c 3 0新特性 隱式型別

在c 中,可以用var關鍵字來宣告隱式型別的區域性變數,語法如下 var 變數名 初始值 注意 1.使用var關鍵字定義的變數必須初始化 2.使用var關鍵字只能宣告區域性變數 包括在for foreach using語句中使用的變數 而不能宣告其他變數。3.使用object型別宣告的變數是弱型別,...