Operatore TypeOf (Visual Basic)
Confronta una variabile di riferimento a un oggetto con un tipo di dati.
result = TypeOf objectexpression Is typename
Parti
result
Restituita.Valore di Boolean.objectexpression
Obbligatorio.Qualsiasi espressione che restituisce un tipo di riferimento.typename
Obbligatorio.Qualsiasi nome di un tipo di dati.
Note
L'operatore TypeOf determina se il tipo di objectexpression in fase di esecuzione è compatibile con typename.La compatibilità dipende dalla categoria del tipo di typename.Nella tabella riportata di seguito viene illustrato come si determina la compatibilità.
Categoria del tipo di typename |
Criterio di compatibilità |
---|---|
Classe |
objectexpression è del tipo typename o eredita da typename |
Struttura |
objectexpression è di tipo typename |
Interfaccia |
objectexpression implementa typename o eredita da una classe che implementa typename |
Se il tipo di objectexpression in fase di esecuzione soddisfa il criterio di compatibilità, result sarà True.In caso contrario, result sarà False.
TypeOf viene sempre utilizzato con la parola chiave Is per costruire un'espressione TypeOf...Is.
Esempio
Nell'esempio riportato di seguito le espressioni TypeOf...Is vengono utilizzate per verificare la compatibilità dei tipi di due variabili di riferimento a un oggetto con diversi tipi di dati.
Dim refInteger As Object = 2
MsgBox("TypeOf Object[Integer] Is Integer? " & TypeOf refInteger Is Integer)
MsgBox("TypeOf Object[Integer] Is Double? " & TypeOf refInteger Is Double)
Dim refForm As Object = New System.Windows.Forms.Form
MsgBox("TypeOf Object[Form] Is Form? " & TypeOf refForm Is System.Windows.Forms.Form)
MsgBox("TypeOf Object[Form] Is Label? " & TypeOf refForm Is System.Windows.Forms.Label)
MsgBox("TypeOf Object[Form] Is Control? " & TypeOf refForm Is System.Windows.Forms.Control)
MsgBox("TypeOf Object[Form] Is IComponent? " & TypeOf refForm Is System.ComponentModel.IComponent)
La variabile refInteger presenta un tipo di Integer in fase di esecuzione.Tale variabile è compatibile con Integer, ma non con Double.La variabile refForm presenta un tipo di Form in fase di esecuzione.Tale variabile è compatibile con Form perché si tratta del relativo tipo, con Control perché Form eredita da Control, nonché con IComponent perché Form eredita da Component che implementa IComponent.refForm non è invece compatibile con Label.
Vedere anche
Riferimenti
Operatore IsNot (Visual Basic)
Precedenza tra gli operatori in Visual Basic
Elenco degli operatori per funzionalità (Visual Basic)