Pergunta

Em cada site que fala sobre VBScript, o operador '&' é listado como o operador de concatenação. No entanto, em algum código que eu tenho herdou recentemente, vejo o operador '+' sendo usado e eu não estou vendo erros como resultado disso. É este uma alternativa aceita?

Foi útil?

Solução

O operador + está sobrecarregado, enquanto o operador & não é. O operador & só faz concatenação. Em alguns círculos o operador & é usado como uma boa prática, porque é ambígua e, portanto, não pode ter quaisquer efeitos imprevistos, como resultado da sobrecarga.

Outras dicas

O operador & faz concatenação, isto é, forças operandos a serem convertidos para strings (como chamar CStr sobre eles em primeiro lugar). +, por sua vez, as forças disso, se uma das expressões é numérico. Por exemplo:

1 & 2

lhe dá 12, enquanto

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

dar-lhe 3.

Assim, recomenda-se a utilização & para concatenação uma vez que elimina a ambiguidade.

operador + pode sair pela culatra quando strings podem ser interpretadas como números. Se você não quer surpresas desagradáveis ??usar & para cordas concatenar.

Em alguns casos a + irá lançar uma exceção; por exemplo, o seguinte:

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

Você receberá uma exceção quando a fonte objeto COM aciona o evento - você deve fazer um dos seguintes procedimentos:

MsgBox "Received Event: " & fvalue

ou

MsgBox "Received Event: " + CStr(fvalue)

Pode ser o melhor em ambos os casos ao uso CStr(value); mas usando & per acima comentários para concatenação é quase sempre a melhor prática.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top