Operatori di confronto in Visual BasicComparison Operators in Visual Basic

Gli operatori di confronto confrontano due espressioni e restituiscono un valore Boolean che rappresenta la relazione dei rispettivi valori.Comparison operators compare two expressions and return a Boolean value that represents the relationship of their values. Sono disponibili operatori per il confronto di valori numerici, operatori per il confronto di stringhe e operatori per il confronto di oggetti.There are operators for comparing numeric values, operators for comparing strings, and operators for comparing objects. Tutti e tre i tipi di operatori sono descritti in questo documento.All three types of operators are discussed herein.

Confronto di valori numericiComparing Numeric Values

Visual Basic confronta i valori numerici con sei operatori di confronto numerici.Visual Basic compares numeric values using six numeric comparison operators. Ogni operatore accetta come operandi due espressioni che restituiscono valori numerici.Each operator takes as operands two expressions that evaluate to numeric values. La tabella seguente elenca gli operatori e Mostra esempi di ciascuno di essi.The following table lists the operators and shows examples of each.

OperatoreOperator Condizione testataCondition tested EsempiExamples
= (uguaglianza)= (Equality) Valore della prima espressione uguale al valore del secondo?Is the value of the first expression equal to the value of the second? 23 = 33 ' False23 = 33 ' False

23 = 23 ' True23 = 23 ' True

23 = 12 ' False23 = 12 ' False
<> (disuguaglianza)<> (Inequality) Il valore della prima espressione è diverso dal valore della seconda?Is the value of the first expression unequal to the value of the second? 23 <> 33 ' True23 <> 33 ' True

23 <> 23 ' False23 <> 23 ' False

23 <> 12 ' True23 <> 12 ' True
< (minore di)< (Less than) Il valore della prima espressione è minore del valore della seconda?Is the value of the first expression less than the value of the second? 23 < 33 ' True23 < 33 ' True

23 < 23 ' False23 < 23 ' False

23 < 12 ' False23 < 12 ' False
> (maggiore di)> (Greater than) Il valore della prima espressione è maggiore del valore del secondo?Is the value of the first expression greater than the value of the second? 23 > 33 ' False23 > 33 ' False

23 > 23 ' False23 > 23 ' False

23 > 12 ' True23 > 12 ' True
<= (minore o uguale a)<= (Less than or equal to) Il valore della prima espressione è minore o uguale al valore del secondo?Is the value of the first expression less than or equal to the value of the second? 23 <= 33 ' True23 <= 33 ' True

23 <= 23 ' True23 <= 23 ' True

23 <= 12 ' False23 <= 12 ' False
>= (maggiore o uguale a)>= (Greater than or equal to) Il valore della prima espressione è maggiore o uguale al valore del secondo?Is the value of the first expression greater than or equal to the value of the second? 23 >= 33 ' False23 >= 33 ' False

23 >= 23 ' True23 >= 23 ' True

23 >= 12 ' True23 >= 12 ' True

Confronto di stringheComparing Strings

Visual Basic confronta le stringhe usando l' operatore like , nonché gli operatori di confronto numerici.Visual Basic compares strings using the Like Operator as well as the numeric comparison operators. L'operatore Like consente di specificare un modello.The Like operator allows you to specify a pattern. La stringa viene quindi confrontata con il modello e, se corrisponde, il risultato viene True.The string is then compared against the pattern, and if it matches, the result is True. In caso contrario, il risultato è False.Otherwise, the result is False. Gli operatori numerici consentono di confrontare String valori in base al relativo ordinamento, come illustrato nell'esempio riportato di seguito.The numeric operators allow you to compare String values based on their sort order, as the following example shows.

"73" < "9"

' The result of the preceding comparison is True.

Il risultato nell'esempio precedente è True perché il primo carattere nella prima stringa Ordina prima del primo carattere nella seconda stringa.The result in the preceding example is True because the first character in the first string sorts before the first character in the second string. Se i primi caratteri fossero uguali, il confronto continuerà a essere il carattere successivo in entrambe le stringhe e così via.If the first characters were equal, the comparison would continue to the next character in both strings, and so on. È anche possibile testare l'uguaglianza delle stringhe usando l'operatore di uguaglianza, come illustrato nell'esempio seguente.You can also test equality of strings using the equality operator, as the following example shows.

"734" = "734"

' The result of the preceding comparison is True.

Se una stringa è un prefisso di un altro, ad esempio "AA" e "AAA", la stringa più lunga viene considerata maggiore della stringa più breve.If one string is a prefix of another, such as "aa" and "aaa", the longer string is considered to be greater than the shorter string. Questa condizione è illustrata nell'esempio seguente.The following example illustrates this.

"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.The sort order is based on either a binary comparison or a textual comparison depending on the setting of Option Compare. Per altre informazioni, vedere istruzione Option Compare.For more information see Option Compare Statement.

Confronto di oggettiComparing Objects

Visual Basic confronta due variabili di riferimento a oggetti con l' operatore is e l' operatorenon.Visual Basic compares two object reference variables with the Is Operator and the IsNot Operator. È possibile utilizzare uno di questi operatori per determinare se due variabili di riferimento fanno riferimento alla stessa istanza dell'oggetto.You can use either of these operators to determine if two reference variables refer to the same object instance. Questa condizione è illustrata nell'esempio seguente.The following example illustrates this.

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.In the preceding example, x Is y evaluates to True, because both variables refer to the same instance. Confrontare questo risultato con l'esempio seguente.Contrast this result with the following example.

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 quel tipo.In the preceding example, x Is y evaluates to False, because although the variables refer to objects of the same type, they refer to different instances of that type.

Quando si desidera testare due oggetti che non puntano alla stessa istanza, l'operatore IsNot consente di evitare una combinazione di Not e Isgrammaticamente goffa.When you want to test for two objects not pointing to the same instance, the IsNot operator lets you avoid a grammatically clumsy combination of Not and Is. Questa condizione è illustrata nell'esempio seguente.The following example illustrates this.

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 equivale a If Not a Is b.In the preceding example, If a IsNot b is equivalent to If Not a Is b.

Confronto del tipo di oggettoComparing Object Type

È possibile verificare se un oggetto è di un tipo particolare con l'espressione TypeOf...Is.You can test whether an object is of a particular type with the TypeOf...Is expression. La sintassi è la seguente:The syntax is as follows:

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.When typename specifies an interface type, then the TypeOf...Is expression returns True if the object implements the interface type. 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.When typename is a class type, then the expression returns True if the object is an instance of the specified class or of a class that derives from the specified class. Questa condizione è illustrata nell'esempio seguente.The following example illustrates this.

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.In the preceding example, the TypeOf x Is Control expression evaluates to True because the type of x is Button, which inherits from Control.

Per ulteriori informazioni, vedere operatore typeof.For more information, see TypeOf Operator.

Vedere ancheSee also