C 3 4 匿名型別

2022-01-11 16:57:35 字數 897 閱讀 7233

使用匿名型別:

static

void

main()

; console.writeline(sometype);

}

這個會輸出什麼呢?是sometype的型別完全限定名嗎?非也...看圖:

我們都知道console.writeline會去呼叫引數的tostring方法,那麼可以肯定匿名型別sometype重寫了tostring方法。那麼如果我再上面的基礎上再加上乙個匿名型別,只不過把屬性循序換下,如下:

static

void

main()

;

var othertype = new ;

console.writeline(sometype);

console.writeline(othertype);

}

結果如下:

看的出來tostring返回的字串的順序和我們新增時的順序相同。那麼我這兩個型別有共同的屬性,只不過順序不同, 編譯器會為我們產生幾個型別呢?看看il**:

是兩個不同的型別!從匿名型別重寫tostring方法就可以理解到編譯器為什麼會這麼做了[...]。 如果屬性的順序和個數及名字都相同,那麼編譯器就會只生成乙份。 匿名型別直接繼承自system.object,其成員是根據初始化器推斷而來的讀寫屬性,一般會結合var關鍵字來使用。

C 34 多維陣列和多維指標

void code include include int reset char p,int size,int new size printf n printf n printarray p,9 return 0 輸出 0,1,2,3,4,5,6,7,8,printfarray 401 234567...

C 匿名型別

c 3.0引入了對匿名型別的支援。它們是由編譯器動態生成的資料型別,而不是通過顯示地類定義來宣告的。下面通過乙個例子介紹匿名型別的使用 示例 將匿名型別的例項賦給隱式型別的區域性變數 執行結果 注意 除非使用lambda表示式和查詢表示式關聯來自不同型別的資料,或者對資料進行水平投射 以減少乙個特定...

c 匿名型別

匿名型別 允許我們建立無名類型別的特性。匿名型別 anonymous type 經常用於linq查詢的結果中。第6章介紹了物件初始化語句,它允許我們在使用物件建立表示式時初始化新類例項的字段和屬性。提醒一下,這種形式的物件建立表示式由三部分組成 new關鍵字 類名或建構函式以及物件初始化語句。物件初...