请考虑string.Format()
,其参数是字符串,其中包括过载列表中的object[]
或许多对象。string.Format在运行时失败并出现整数阵列
该语句成功:
string foo = string.Format("{0} {1}", 5, 6);
为做到这一点:
object[] myObjs = new object[] {8,9};
string baz = string.Format("{0} and {1}", myObjs;
一样字符串数组:
string[] myStrings = new string[] {"abc", "xyz"};
string baz = string.Format("{0} {1}", myStrings);
看来,整数,当单独指定,可以装箱或强制键入object
,然后强制为一个字符串。
此声明在运行时失败。
int[] myInts = new int[] {8,9};
string bar = string.Format("{0} and {1}", myInts);
指数(基于零的)必须大于参数列表的大小大于或等于零且小于。
- 为什么没有或不能在int数组被强制或盒装到
object[]
或string[]
? - 出于一点好奇心,为什么编译器不知道这个?
AO:感谢这个答案。我已经更新了这个问题,以包含'string []'string.Format()'的成功。这与'int []'有什么不同? – 2010-07-15 17:36:02
@ p.campbell,请参阅有关数组协方差在值类型中不受支持的更新。 – 2010-07-15 17:38:04
所以你说'int []'是作为一个对象而不是数组或对象数组传递的,但'object []'会作为一个数组传递? – Jack 2013-03-29 10:25:55