String.Format很乐意使用一个字符串数组,但在处理带有异常的int数组时会失败:
索引(从零开始)必须大于或等于零且小于参数列表的大小.
string result = null;
var words = new string[] { "1", "2", "3" };
result = String.Format("Count {0}{1}{2}", words); //This works.
var nums = new int[] { 1, 2, 3 };
result = String.Format("Count {0}{1}{2}", nums); //This throws an exception.
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
发生这种情况是因为string.Format您正在使用的过载需要object[].A string是引用类型,因此string[]可以隐式转换为object[],但是int是值类型,并且在放入对象数组之前必须加框.因此,当您使用int它时,选择另一个只接受一个参数的重载,然后将整个int[]作为单个对象传递,而不是单独传递每个int.
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |