VB.NETでは、?&
の代わりに文字列を連結するために使用することに利点はあり+
ますか?
例えば
Dim x as String = "hello" + " there"
対。
Dim x as String = "hello" & " there"
はい、使用したい文字列の連結がたくさんあることは知っていますStringBuilder
が、これはもっと一般的な質問です。
VB.NETでは、?&
の代わりに文字列を連結するために使用することに利点はあり+
ますか?
例えば
Dim x as String = "hello" + " there"
対。
Dim x as String = "hello" & " there"
はい、使用したい文字列の連結がたくさんあることは知っていますStringBuilder
が、これはもっと一般的な質問です。
Microsoftの好みは、VBプログラマーが&
文字列に使用することであり、ではありません+
。
+演算子を使用して、文字列を連結することもできます。ただし、あいまいさを排除するには、代わりに&演算子を使用する必要があります。
私は両方の演算子を支持する良い、強い議論を聞いた。どの議論がその日に勝つかは、主にあなたの状況に依存します。私が言えることの1つは、どちらか一方を標準化する必要があるということです。この2つを組み合わせたコードは、後で混乱を招きます。
私が今覚えている2つの議論は賛成&
です:
Option Strict
混同しがちです。+
そしてのために+
:
&
は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
編集:ただし、文字列以外を連結する場合は、とにかくより良い方法を使用する必要があります。
それは歴史的であり(.NET Visual Basic以外では&を使用しているので、なぜ+が導入されたのかわからない)、好みの問題だと思います(&は文字列を連結しているため、追加しません...)。