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

最初の 2 つのオプションは同一の IL にコンパイルされ、最速のアプローチです。

3 番目のオプションでは、実行時に文字列を解析してペアを見つける必要があるため、処理が{}遅くなります。


のような式は、文字列リテラルを無駄にすることなくa + b + c、1 回の呼び出しにコンパイルされます。String.Concat(...)

通常の文字列連結を回避する必要があるのは、コンパイラが単一の呼び出しにフラット化できないループ内のみです。
代わりに、ループを LINQ and に置き換えるかString.Join、または useaを使用する必要がありますStringBuilder

于 2013-01-04T15:13:21.957 に答える