当我把int数组作为参数时,Console.Write()中发生了什么?

时间:2012-06-07 19:32:16

标签: arrays cil console.writeline

标题中的问题。调用Write方法时到底发生了什么?如果我有这样的代码:

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

是否有任何可能性,如果不改变Write方法参数(不添加[0]),将显示数字2? (数组的第一个元素)这个代码在不同的.NET框架版本中会得到相同的结果吗?

Method using Console.WriteLine in C# and ildasm

为什么这个方法不写y的类型? (System.Int32 [])

1 个答案:

答案 0 :(得分:2)

不,这是不可能的,因为您必须重新定义Int32 []的toString()方法。

Console.Write(t)只是Console.Write(t.toString())t.toString()Int32[].toString()

Int32[].toString()的行为只是返回类型,在本例中为System.Int32[]

因此,要回答您的问题,请不要让Int32[].toString()返回第一个索引的toString()