我有一个语句,其中以下列方式分配字符串:
for (int i = 0; i < x; i++)
{
Foo.MyStringProperty = "Bar_" + i.ToString();
/* ... */
}
i.ToString()
或只是简单的 i
之间是否存在任何性能差异,因为两者都只是转换为(文化不变?)等效字符串?
我很清楚String.Concat()
、String.Format
、StringBuilder
等的存在,但是对于在这种情况下,假设我可能只使用 +
连接。
提前致谢。
最佳答案
+
串联使用 String.Concat
- String
本身不公开 + 运算符。
例如:
int i = 10;
string x = "hello" + i;
编译成:
int i = 10;
object o1 = "hello";
object o2 = i; // Note boxing
string x = string.Concat(o1, o2);
而直接调用 ToString
将避免装箱并调用 Concat(string, string)
重载。因此,带有 ToString
调用的版本将稍微更有效率 - 但我非常怀疑它是否重要,我强烈建议您使用任何版本你觉得更具可读性。
关于c# - 带或不带 .ToString() 的字符串连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1974776/