【发布时间】:2018-07-11 05:24:38
【问题描述】:
只是尝试使用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);
Edit1:好的,我错了,但似乎 string.format 适用于 this guy's case 和 string[] 。
我可以看到string.format 有一个重载方法:
Format(String, array<Object>[]()[])。是否可以创建某种形式的 byte[],可以视为 array<Object>[]()[] ?
【问题讨论】:
-
索引错误说明了什么?
-
"索引(从零开始)必须大于或等于零且小于参数列表的大小。"。听起来 MacAddr 被视为单个对象。不是数组?
-
嗯,是的,第二种方法失败了,因为您指的是“参数 1”、“参数 2”等直到参数 5,但您只提供了一个参数(参数 0)。您可以改用
BitConverter.ToString,否则请坚持您的第一种方法。 -
让你错过 JavaScript 中的扩展运算符 :(
标签: c# string-formatting