字符串连接最佳实践



试图确定使用字符串是否是更好的做法。用格式代替串联字符串,如果是这样,为什么会这样?此外,他们的优点/缺点是我应该意识到的吗?

此:

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

或:

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

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

"最佳实践"应该是使代码可读性和可维护性最高的东西。串联字符串与使用string.Format和使用StringBuilder之间的性能差异非常小,因此本质上是无关的。

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

String.format不会生成中间字符串。据我所知,它在char[]中执行所有操作,然后通过成为字符串使其不可变。

最新更新