对于简单的字符串连接,请使用该+
方法。对于不需要格式的简单事物来说更清楚。
对于具有特定格式的更复杂的字符串,并且保留整个字符串的结构并为输入提供占位符很有用,请使用String.Format
.
是的,有开销。String.Format
在幕后使用 StringBuilder。在这些情况下,简单的字符串连接会快得多。可以很容易地找到有关此主题的一些基准测试和博客文章。当然,这一切都取决于您的使用情况。如果循环中出现小字符串连接,那么重复使用 ofString.Format
可能比直接连接更明显+
。如果您要在循环中构建一个大字符串,那么经典示例是首选StringBuilder
,并且可以在 SO 上找到关于 concat 与 StringBuilder 的相关问题。
编辑:澄清一下,这没什么用:String.Format("{0}{1}", a, b)
因为没有太多的格式。简直了a + b
。不幸的是,我在生产代码中遇到过这样的例子,一旦我看到 String.Format,我希望看到需要以某种方式构造的东西,而不是简单的连接。
OTOH,考虑一下这个电话号码:"(" + area + ") " + number + " x" + extension
- 事情太多了,而且不容易修改。在这种情况下,最好使用 String.Format:String.Format("({0}) {1} x{2}", area, number, extension)
. 这仍然是一个微不足道的例子,但你明白了。