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.