2010-07-29 60 views

risposta

4

Le espressioni sono le stesse purché gli operandi siano stringhe; in caso contrario, è possibile aggiungerli a + a seconda delle conversioni di tipo. & garantisce che non si otterrà nulla tranne una concatenazione di stringhe e, se possibile, convertirà gli operandi in stringhe.

C'è una voce di MSDN su Concatenation operations in Visual Basic che lo spiega:

Il & Operator (Visual Basic) è definita solo per operandi stringa, e si allarga sempre i suoi operandi stringa, indipendentemente dall'impostazione di Option Strict . L'operatore & è consigliato per la concatenazione di stringhe poiché è definito esclusivamente per le stringhe e riduce le possibilità di generare una conversione non voluta.

+3

Le espressioni non sono le stesse anche con le stringhe se uno dei valori è nullo. – Fionnuala

+0

L'articolo MSDN riguarda Visual Basic, ma immagino che funzioni anche in VBA? Non esiste una pagina di documentazione VBA o è? –

2

Le due espressioni sono equivalenti, ma gli operatori no. + può essere utilizzato come operatore aritmetico e per la concatenazione di stringhe, & può essere utilizzato solo per quest'ultimo.

+0

ok allora perché lo hanno fatto e del tutto? –

+0

Hanno un comportamento diverso, vedi ['+' operatore] (http://msdn.microsoft.com/en-us/library/9c5t70w2%28v=VS.80%29.aspx) contro ['operatore &'] (http://msdn.microsoft.com/en-us/library/wfx50zyk%28v=VS.80%29.aspx). –

+0

Considerare un valore nullo concatenato con una stringa utilizzando + – Fionnuala