字符串连接最佳实践

时间:2013-11-27 17:01:43

标签: c# string-formatting string-concatenation

尝试确定使用string.Format代替串联字符串是否更好,如果是这样,为什么会这样?另外,他们应该注意哪些优点/缺点?

此:

string foo = "I" + " am " + " a " + " string.";

或:

string bar = string.Format("{0} am a {1}.", "I", "string");

显然过于简单的例子,只是想清楚。

2 个答案:

答案 0 :(得分:4)

“最佳实践”应该是使您的代码最具可读性和可维护性的东西。串联字符串与使用string.Format与使用StringBuilder之间的性能差异非常小,以至于它基本上无关紧要。

答案 1 :(得分:2)

假设第一个方法在编译时没有优化,因为字符串是不可变的,它将创建许多中间字符串。它将从左到右工作,所以首先是“我是”,然后是“我是一个”,最后是“我是一个字符串”。它存储在foo中。

String.format不会生成中间字符串。根据我的理解,它完成了char[]中的所有操作,然后通过创建一个String使其成为不可变的。