58

VB.NETでは、?&の代わりに文字列を連結するために使用することに利点はあり+ますか?

例えば

Dim x as String = "hello" + " there"

対。

Dim x as String = "hello" & " there"

はい、使用したい文字列の連結がたくさんあることは知っていますStringBuilderが、これはもっと一般的な質問です。

4

5 に答える 5

46

Microsoftの好みは、VBプログラマーが&文字列に使用することであり、ではありません+

+演算子を使用して、文字列を連結することもできます。ただし、あいまいさを排除するには、代わりに&演算子を使用する必要があります。

于 2010-06-09T14:15:42.403 に答える
44

私は両方の演算子を支持する良い、強い議論を聞いた。どの議論がその日に勝つかは、主にあなたの状況に依存します。私が言えることの1つは、どちらか一方を標準化する必要があるということです。この2つを組み合わせたコードは、後で混乱を招きます。

私が今覚えている2つの議論は賛成&です:

  • 使用しておらず、2つの数値文字列がある場合、コンパイラは演算子の意味を算術加算とOption Strict混同しがちです。+
  • 多くの古いvb6-eraコードを更新する場合は、連結演算子を変換する必要がないので役立ちます(そして、覚えておいてください:一貫性が必要です)。

そしてのために+

  • vb / C#が混在するショップがある場合は、連結演算子が1つしかないと便利です。これにより、言語間でのコードの移動が容易になり、言語間を行き来する際のプログラマーのコンテキストスイッチが大幅に少なくなります。
  • &はVBにほぼ固有ですが+、文字列間は多くの言語で連結を意味すると理解されているため、読みやすさが少し向上します。
于 2010-06-09T13:29:06.233 に答える
15

&VB.NETで文字列の連結に使用することを好みます

この理由の1つは、混乱を避けるためです。

MessageBox.Show(1 & 2) ' "12"
MessageBox.Show(1 + 2) ' 3
于 2010-06-09T13:28:43.127 に答える
10

コンパイラに意図を明確にしているので、使用する方が安全です(これらの2つの値を連結したいので、両方とも文字列に変換する必要があります)。

+を使用すると、文字列が数値の場合、少なくともオプションstrictがオフの場合、バグを見つけるのが難しくなる可能性があります。

例えば:

1 + "1" = 2 ' this fails if option strict is on
1 & "1" = 11

編集:ただし、文字列以外を連結する場合は、とにかくより良い方法を使用する必要があります。

于 2010-06-09T13:25:54.927 に答える
5

それは歴史的であり(.NET Visual Basic以外では&を使用しているので、なぜ+が導入されたのかわからない)、好みの問題だと思います(&は文字列を連結しているため、追加しません...)。

于 2010-06-09T13:24:47.373 に答える