Condividi tramite


Operatori di confronto in Visual Basic

Gli operatori di confronto confrontano due espressioni e restituiscono un valore Boolean che rappresenta la relazione dei relativi valori. Esistono operatori per il confronto di valori numerici, operatori per il confronto di stringhe e operatori per il confronto di oggetti. Tutti e tre i tipi di operatori sono illustrati in questo articolo.

Confronto di valori numerici

Visual Basic confronta i valori numerici usando sei operatori di confronto numerici. Ogni operatore accetta come operandi due espressioni che restituiscono valori numerici. Nella tabella seguente sono elencati gli operatori e vengono illustrati esempi di ognuno di essi.

Operatore Condizione testata Esempi
= (uguaglianza) Il valore della prima espressione è uguale al valore della seconda? 23 = 33 ' False

23 = 23 ' True

23 = 12 ' False
<> (disuguaglianza) 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 usando l'operatore Like e gli operatori di confronto numerici. L'operatore Like consente di specificare un criterio. La stringa viene quindi confrontata con il criterio e, se corrisponde, il risultato è True. In caso contrario, il risultato è False. Gli operatori numerici consentono di confrontare i valori String in base al relativo ordinamento, come illustrato nell'esempio seguente.

"73" < "9"

' The result of the preceding comparison is True.

Il risultato nell'esempio precedente è True dovuto al fatto che il primo carattere della prima stringa viene ordinato prima del primo carattere nella seconda stringa. Se i primi caratteri sono uguali, il confronto continuerà con il carattere successivo in entrambe le stringhe e così via. È anche possibile testare l'uguaglianza delle stringhe usando l'operatore di uguaglianza, come illustrato nell'esempio seguente.

"734" = "734"

' The result of the preceding comparison is True.

Se una stringa è un prefisso di un'altra, ad esempio "aa" e "aaa", la stringa più lunga viene considerata maggiore della stringa più breve. Ciò è illustrato nell'esempio seguente.

"aaa" > "aa"

' The result of the preceding comparison is True.

L'ordinamento è basato su un confronto binario o su un confronto testuale a seconda dell'impostazione di Option Compare. Per altre informazioni, vedere Istruzione Option Compare.

Confronto di oggetti

Visual Basic confronta due variabili di riferimento a oggetti con l'operatore Is e l'operatore IsNot. È possibile usare uno di questi operatori per determinare se due variabili di riferimento fanno riferimento alla stessa istanza dell'oggetto. Ciò è illustrato nell'esempio seguente.

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. Confrontare questo risultato con l'esempio seguente.

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é anche se le variabili fanno riferimento a oggetti dello stesso tipo, fanno riferimento a istanze diverse di tale tipo.

Quando si vuole verificare che due oggetti non puntino alla stessa istanza, l'operatore IsNot consente di evitare una combinazione grammaticalmente goffa di Not e Is. Ciò è illustrato nell'esempio seguente.

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

È possibile verificare se un oggetto è di un particolare tipo con l'espressione TypeOf...Is. La sintassi è la seguente:

TypeOf <objectexpression> Is <typename>

Quando typename specifica un tipo di interfaccia, l'espressione TypeOf...Is restituisce True se l'oggetto implementa il tipo di interfaccia. Quando typename è un tipo di classe, l'espressione restituisce True se l'oggetto è un'istanza della classe specificata o di una classe che deriva dalla classe specificata. Ciò è illustrato nell'esempio seguente.

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 altre informazioni, vedere Operatore TypeOf.

Vedi anche