0

什么是更快的性能明智:使用 + 运算符、& 运算符或通过 string.format 构建字符串?

varname、title、city、state、orgtype 是我声明的变量。

例如:

1.

varname = title + " in " + city + ", " + state + ". Contact " + title + ". " + orgtype + " " + city + "."

2.

varname = title & " in " & city & ", " & state & ". Contact " & title & ". " & orgtype & " " & city & "."

3.

varname = string.format("{0} in {1}, {2}. Contact {0}. {3} {1}.", title, city, state, orgtype)
4

1 回答 1

4

前两个选项编译为相同的 IL,是最快的方法。

第三个选项将需要在运行时解析字符串以找到{}对,使其变慢。


像这样的表达式a + b + c将编译为单个String.Concat(...)调用,而不会浪费任何字符串文字。

您应该避免普通字符串连接的唯一一次是在循环中,编译器无法将其展平为单个调用。相反,您应该使用 LINQ and或 usea
替换循环。String.JoinStringBuilder

于 2013-01-04T15:13:21.957 回答