標題中的問題。 Write方法被調用時究竟發生了什麼?如果我有這樣的代碼:當我把int數組作爲參數時Console.Write()中發生了什麼?
int [] t = new int[]{2,1};
Console.Write(t);
是那裏,而不改變Write方法參數(不添加[0])2號將被顯示的任何posibility? (數組的第一個元素)該代碼是否會在不同的.NET框架版本中提供相同的結果?
爲什麼這種方法不寫Y的類型? (System.Int32 [])
標題中的問題。 Write方法被調用時究竟發生了什麼?如果我有這樣的代碼:當我把int數組作爲參數時Console.Write()中發生了什麼?
int [] t = new int[]{2,1};
Console.Write(t);
是那裏,而不改變Write方法參數(不添加[0])2號將被顯示的任何posibility? (數組的第一個元素)該代碼是否會在不同的.NET框架版本中提供相同的結果?
爲什麼這種方法不寫Y的類型? (System.Int32 [])
不,這是不可能的,因爲您將不得不重新定義Int32 []的toString()
方法。
Console.Write(t)簡單地爲Console.Write(t.toString())
和t.toString()
爲Int32[].toString()
。
Int32[].toString()
的行爲是簡單地返回類型,在這種情況下System.Int32[]
。
所以要回答你的問題,不可以讓Int32[].toString()
返回第一個索引的toString()
。
請記住過載,但。 'Console.Write(charArray)',其中'charArray'的類型爲'char []'將會「有更多有意義的輸出」。 – 2012-06-07 21:00:36
'Console.WriteLine(object)' - >'object.ToString()' – 2012-06-07 19:39:05
好的,我知道。現在有可能t.ToString()沒有給「System.Int32 []」,而是「2」? Maby ToString()與其他.NET框架版本有什麼不同? – Arvangen