VB.NETでは、&
の代わりに+
を使用して文字列を連結することに利点はありますか?
例えば
Dim x as String = "hello" + " there"
vs.
Dim x as String = "hello" & " there"
はい、私はStringBuilder
を使用したい多くの文字列連結について知っていますが、これはより一般的な質問です。
私は両方の演算子を支持する良い強力な議論を聞いたことがあります。どちらの議論に勝つかは、主にあなたの状況に依存します。私が言えることは、どちらかを標準化する必要があるということです。この2つを組み合わせたコードは、後で混乱を招いています。
&
を支持するために私が今覚えている2つの引数:
Option Strict
を使用しておらず、2つの数値文字列がある場合、コンパイラは+
演算子の意味を算術加算と混同しやすい+
の場合:
&
はほとんどVBに固有ですが、文字列間の+
は多くの言語で連結を意味すると理解されているため、読みやすくすることができます。Micorosoftの preference は、VBを使用して、文字列に&を使用するプロガマーであり、+ではありません。
また、+演算子を使用して文字列を連結することもできます。ただし、あいまいさを排除するには、代わりに&演算子を使用する必要があります。
&
VB.NETの文字列連結用
この理由の1つは、混乱を避けるためです。
MessageBox.Show(1 & 2) ' "12"
MessageBox.Show(1 + 2) ' 3
コンパイラに対して意図を明確にしているため、&を使用する方が安全です(これら2つの値を連結し、両方とも文字列に変換する必要があります)。
+を使用すると、文字列が数値の場合、少なくともオプションstrictがオフの場合、バグを見つけるのが難しくなります。
例えば:
1 + "1" = 2 ' this fails if option strict is on
1 & "1" = 11
編集:ただし、文字列以外を連結する場合は、とにかくもっと良い方法を使用する必要があります。
私はそれが歴史的であり(。