当尝试使用数组作为string.Format()
方法的参数时,我收到以下错误:
FormatException:Index(从零开始)必须大于或等于零且小于参数列表的大小.
代码如下:
place = new int[] { 1, 2, 3, 4};
infoText.text = string.Format("Player1: {0} \n Player2: {1} \n Player3: {2} \n Player4: {3}", place);
Run Code Online (Sandbox Code Playgroud)
Array包含四个值,其中的参数String.Format()
也相同.
是什么导致这个错误?
(这infoText.text
只是一个常规的String对象)
只是尝试使用string.Format()
将系统MAC地址转换为文本格式.但它不起作用:
byte[] MacAddr = new byte[6];
// this works, but rather clumzy
mac = string.Format("{0:X2}-{1:X2}-{2:X2}-{3:X2}-{4:X2}-{5:X2}",
MacAddr[0], MacAddr[1], MacAddr[2], MacAddr[3], MacAddr[4], MacAddr[5]);
// give me index error
mac = string.Format("{0:X2}-{1:X2}-{2:X2}-{3:X2}-{4:X2}-{5:X2}", MacAddr);
Run Code Online (Sandbox Code Playgroud)
EDIT1:OK,我错了,但似乎string.format
对于工作这家伙的情况下用string[]
.
我可以看到有一种重载方法string.format
:
Format(String, array<Object>[]()[])
.是否有可能创建某种形式的byte [],可以这样做array<Object>[]()[]
?