Condividi tramite


Operatori di confronto in Visual Basic

Aggiornamento: novembre 2007

Gli operatori di confronto consentono di confrontare due espressioni e di ottenere un valore Boolean che rappresenta la relazione esistente tra i valori delle espressioni. Esistono operatori per il confronto di valori numerici, operatori per il confronto di stringhe e operatori per il confronto di oggetti. Di seguito vengono esaminati i tre tipi di operatori.

Confronto di valori numerici

Visual Basic confronta i valori numerici mediante sei operatori di confronto numerico. Ciascun operatore considera come operandi due espressioni che restituiscono valori numerici. Nella tabella riportata di seguito vengono elencati gli operatori e vengono visualizzati esempi per ciascuno di essi.

Operatore

Condizione verificata

Esempi

= (uguaglianza)

Il valore della prima espressione è uguale al valore della seconda?

23 = 33 ' False

23 = 23 ' True

23 = 12 ' False

<> (diseguaglianza)

Il valore della prima espressione è diverso dal valore della seconda?

23 <> 33 ' True

23 <> 23 ' False

23 <> 12 ' True

< (minore di)

Il valore della prima espressione è minore del valore della seconda?

23 < 33 ' True

23 < 23 ' False

23 < 12 ' False

> (maggiore di)

Il valore della prima espressione è maggiore del valore della seconda?

23 > 33 ' False

23 > 23 ' False

23 > 12 ' True

<= (minore o uguale a)

Il valore della prima espressione è minore o uguale al valore della seconda?

23 <= 33 ' True

23 <= 23 ' True

23 <= 12 ' False

>= (maggiore o uguale a)

Il valore della prima espressione è maggiore o uguale al valore della seconda?

23 >= 33 ' False

23 >= 23 ' True

23 >= 12 ' True

Confronto di stringhe

Visual Basic confronta le stringhe mediante l'operatore Like (operatore) (Visual Basic) o anche utilizzando gli operatori di confronto numerico. L'operatore Like consente di specificare un modello. La stringa quindi viene confrontata con il modello e, in caso di corrispondenza, il risultato è True. In caso contrario, il risultato sarà False. Gli operatori numerici consentono di confrontare valori String in base al relativo tipo di ordinamento, come illustrato nell'esempio seguente.

"73" < "9"

' The result of the preceding comparison is True.

Il risultato dell'esempio precedente è True perché il primo carattere della prima stringa, secondo l'ordinamento, precede il primo carattere della seconda stringa. Se i primi caratteri fossero uguali, verrebbe eseguito il confronto con il carattere successivo di entrambe le stringhe e così via. È possibile anche verificare l'uguaglianza delle stringhe per mezzo dell'operatore di uguaglianza, come indicato nell'esempio seguente.

"734" = "734"

' The result of the preceding comparison is True.

Se una stringa è il prefisso di un'altra, come nel caso di "aa" e "aaa", la stringa più lunga viene considerata maggiore di quella più corta. Questa condizione è illustrata nell'esempio che segue.

"aaa" > "aa"

' The result of the preceding comparison is True.

Il criterio di ordinamento verrà basato su un confronto binario o un confronto testuale, a seconda dell'impostazione di Option Compare. Per ulteriori informazioni, vedere Istruzione Option Compare.

Confronto di oggetti

Visual Basic confronta due variabili di riferimento a oggetto mediante gli operatori Operatore Is (Visual Basic) e Operatore IsNot. È possibile utilizzare uno di questi operatori per stabilire se due variabili di riferimento si riferiscono alla stessa istanza di un oggetto. Questa condizione è illustrata nell'esempio che segue.

Dim x As testClass
Dim y As New testClass()
x = y
If x Is y Then
    ' Insert code to run if x and y point to the same instance.
End If

Nell'esempio precedente, x Is y restituisce True, perché entrambe le variabili fanno riferimento alla stessa istanza. Si confronti questo risultato con il seguente esempio.

Dim x As New customer()
Dim y As New customer()
If x Is y Then
    ' Insert code to run if x and y point to the same instance.
End If

Nell'esempio precedente, x Is y restituisce False perché, sebbene le variabili si riferiscano a oggetti dello stesso tipo, fanno riferimento a istanze diverse di quel tipo.

Quando si desidera effettuare un controllo su due oggetti che non puntano alla stessa istanza, l'operatore IsNot consente di evitare una combinazione grammaticalmente impropria di Not e Is. Questa condizione è illustrata nell'esempio che segue.

Dim a As New classA()
Dim b As New classB()
If a IsNot b Then
    ' Insert code to run if a and b point to different instances.
End If

Nell'esempio precedente, If a IsNot b è equivalente a If Not a Is b.

Confronto del tipo di oggetto

Per verificare se un oggetto è di un particolare tipo, utilizzare l'espressione TypeOf...Is. La sintassi è la seguente:

TypeOf <objectexpression> Is <typename>

Quando l'oggetto typename specifica un tipo di interfaccia, l'espressione TypeOf...Is restituisce True se l'oggetto implementa il tipo di interfaccia. Quando l'oggetto typename è un tipo di classe, l'espressione restituisce True se l'oggetto è un'istanza della classe specificata o di una classe da essa derivata. Questa condizione è illustrata nell'esempio che segue.

Dim x As System.Windows.Forms.Button
x = New System.Windows.Forms.Button()
If TypeOf x Is System.Windows.Forms.Control Then
    ' Insert code to run if x is of type System.Windows.Forms.Control.
End If

Nell'esempio precedente, l'espressione TypeOf x Is Control restituisce True perché il tipo di x è Button, che eredita da Control.

Per ulteriori informazioni, vedere Operatore TypeOf (Visual Basic).

Vedere anche

Concetti

Confronto di valori

Operatori aritmetici in Visual Basic

Operatori di concatenazione in Visual Basic

Operatori logici e bit per bit in Visual Basic

Riferimenti

Operatori di confronto (Visual Basic)

Altre risorse

Operatori (Visual Basic)