2012-06-07 22 views
0

標題中的問題。 Write方法被調用時究竟發生了什麼?如果我有這樣的代碼:當我把int數組作爲參數時Console.Write()中發生了什麼?

int [] t = new int[]{2,1}; 
Console.Write(t); 

是那裏,而不改變Write方法參數(不添加[0])2號將被顯示的任何posibility? (數組的第一個元素)該代碼是否會在不同的.NET框架版本中提供相同的結果?

Method using Console.WriteLine in C# and ildasm

爲什麼這種方法不寫Y的類型? (System.Int32 [])

+0

'Console.WriteLine(object)' - >'object.ToString()' – 2012-06-07 19:39:05

+0

好的,我知道。現在有可能t.ToString()沒有給「System.Int32 []」,而是「2」? Maby ToString()與其他.NET框架版本有什麼不同? – Arvangen

回答

2

不,這是不可能的,因爲您將不得不重新定義Int32 []的toString()方法。

Console.Write(t)簡單地爲Console.Write(t.toString())t.toString()Int32[].toString()

Int32[].toString()的行爲是簡單地返回類型,在這種情況下System.Int32[]

所以要回答你的問題,不可以讓Int32[].toString()返回第一個索引的toString()

+2

請記住過載,但。 'Console.Write(charArray)',其中'charArray'的類型爲'char []'將會「有更多有意義的輸出」。 – 2012-06-07 21:00:36

相關問題