35

VBScript について説明しているすべてのサイトでは、' &' 演算子が文字列連結演算子としてリストされています。ただし、最近継承した一部のコードでは、' +' 演算子が使用されていることがわかりますが、これによるエラーは発生していません。これは受け入れられた代替案ですか?

4

4 に答える 4

45

演算子は文字列の連結を行います。&つまり、オペランドを強制的に文字列に変換します(CStr最初にオペランドを呼び出すなど)。+次に、式の1つが数値の場合、強制的に加算します。例えば:

1 & 2

あなたに与える12のに対し、

1 + 2
"1" + 2
1 + "2"

あなたに与える3

したがって、&あいまいさを排除するため、文字列の連結に使用することをお勧めします。

于 2009-07-30T20:30:35.410 に答える
43

+ 演算子はオーバーロードされていますが、& 演算子はオーバーロードされていません。& 演算子は、文字列の連結のみを行います。一部のサークルでは、& 演算子は明確であり、オーバーロードの結果として意図しない影響を与えることができないため、ベスト プラクティスとして使用されます。

于 2009-07-30T19:46:52.673 に答える
7

+文字列を数値として解釈できる場合、演算子は逆効果になる可能性があります。厄介な驚きを望まない場合は、 & を使用して文字列を連結します。

于 2009-07-30T19:46:51.160 に答える
2

場合によっては、+ が例外をスローします。たとえば、次のようにします。

Sub SimpleObject_FloatPropertyChanging(fvalue, cancel)
   'fvalue is a floating point number
   MsgBox "Received Event: " + fvalue
End Sub

COM オブジェクト ソースがイベントを発生させると、例外が発生します。次のいずれかを実行する必要があります。

MsgBox "Received Event: " & fvalue

また

MsgBox "Received Event: " + CStr(fvalue)

どちらの場合でも、CStr(value);を使用するのが最適です。ただし、上記のコメントごとに文字列連結に & を使用することは、ほとんどの場合ベスト プラクティスです。

于 2014-02-08T17:34:12.613 に答える