VBScriptの+と&の違いは何ですかオペレーター?
-
05-07-2019 - |
質問
VBScriptについて話すすべてのサイトで、 '&
'演算子が文字列連結演算子としてリストされています。ただし、最近継承した一部のコードでは、「 +
」演算子が使用されていることがわかりますが、その結果としてエラーは表示されません。これは受け入れられる代替手段ですか?
解決
+演算子はオーバーロードされますが、&演算子はそうではありません。 &演算子は文字列の連結のみを行います。一部のサークルでは&演算子は曖昧ではないため、ベストプラクティスとして使用されます。したがって、オーバーロードの結果として意図しない影響を与えることはできません。
他のヒント
&
演算子は文字列の連結を行います。つまり、オペランドを強制的に文字列に変換します(最初に CStr
を呼び出すなど)。 +
は、式の1つが数値の場合、順番に加算を強制します。例:
1 & 2
あなたに 12
を与えますが、
1 + 2
"1" + 2
1 + "2"
あなたに 3
を贈ってください。
したがって、あいまいさを排除するため、文字列の連結には&
を使用することをお勧めします。
+
演算子は、文字列を数値として解釈できる場合に裏目に出る可能性があります。厄介なサプライズが必要ない場合は、&文字列を連結します。
場合によっては、+が例外をスローします。たとえば、次のとおりです。
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)
を使用するのが最適です。ただし、&上記の文字列の連結に関するコメントは、ほとんどの場合ベストプラクティスです。
所属していません StackOverflow