Domanda

Su ogni sito che parla di VBScript, l'operatore ' & amp; ' è elencato come operatore di concatenazione di stringhe. Tuttavia, in alcuni codici che ho ereditato di recente, vedo l'operatore " + " in uso e non vedo alcun errore a causa di ciò. È un'alternativa accettata?

È stato utile?

Soluzione

L'operatore + è sovraccarico, mentre & amp; l'operatore no. Il & amp; l'operatore esegue solo la concatenazione di stringhe. In alcuni ambienti & amp; l'operatore viene utilizzato come best practice perché non è ambiguo e pertanto non può avere effetti indesiderati a causa del sovraccarico.

Altri suggerimenti

L'operatore & amp; esegue la concatenazione di stringhe, ovvero impone che gli operandi vengano convertiti in stringhe (come chiamare prima CStr ). + , a sua volta, forza l'aggiunta se una delle espressioni è numerica. Ad esempio:

1 & 2

ti dà 12 , mentre

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

ti dà 3 .

Quindi, si consiglia di utilizzare & amp; per la concatenazione di stringhe poiché elimina le ambiguità.

L'operatore

+ potrebbe ritorcersi contro quando le stringhe possono essere interpretate come numeri. Se non vuoi brutte sorprese usa & amp; per concatenare le stringhe.

In alcuni casi il + genererà un'eccezione; ad esempio quanto segue:

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

Otterrai un'eccezione quando l'origine dell'oggetto COM genera l'evento: devi eseguire una delle seguenti operazioni:

MsgBox "Received Event: " & fvalue

o

MsgBox "Received Event: " + CStr(fvalue)

In entrambi i casi potrebbe essere preferibile utilizzare CStr (valore) ; ma usando & amp; per i commenti precedenti per la concatenazione di stringhe è quasi sempre la migliore pratica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top