2016-03-29 87 views
-2

你能解釋爲什麼這段代碼產生這個結果的行爲?匿名類型行爲

var person = new { name = "George", age = 30}; 
WriteLine(person); 

和輸出端:

{ name = "George", age = 30}

+0

你會期望輸出是什麼? –

回答

3

WriteLine(object)隱式調用ToString()底層的對象上。該方法是虛擬的,這意味着它可以被派生類型覆蓋。

匿名類型覆蓋object.ToString以顯示其屬性和值。編譯器生成重寫的方法,並且它不能在編譯時或運行時更改。

+0

謝謝,我會選擇最好的答案。 – Johnson