TypeOf-operator (Visual Basic)
Hiermee wordt gecontroleerd of het runtimetype van het resultaat van een expressie compatibel is met het opgegeven type.
Syntaxis
result = TypeOf objectexpression Is typename
result = TypeOf objectexpression IsNot typename
generator
result
Terug. Een Boolean
waarde.
objectexpression
Vereist. Elke expressie die resulteert in een verwijzingstype.
typename
Vereist. Elke naam van het gegevenstype.
Opmerkingen
De TypeOf
operator bepaalt of het runtimetype objectexpression
compatibel is met typename
. De compatibiliteit is afhankelijk van de typecategorie van typename
. In de volgende tabel ziet u hoe compatibiliteit wordt bepaald.
Typecategorie van typename |
Compatibiliteitscriterium |
---|---|
Klas | objectexpression is van het type typename of neemt over van typename |
Structuur | objectexpression is van het type typename |
Interface | objectexpression typename implementeert of neemt over van een klasse die implementeerttypename |
Als het uitvoeringstype objectexpression
voldoet aan het compatibiliteitscriterium, result
is True
. Anders is False
het result
. Als objectexpression
null is, TypeOf
retourneert ...Is
en ... retourneert True
False
.IsNot
TypeOf
wordt altijd gebruikt met het Is
trefwoord om een TypeOf
...Is
-expressie te maken of met het IsNot
trefwoord om een TypeOf
...IsNot
-expressie te maken.
Opmerking
In het volgende voorbeeld worden ...Is
-expressies gebruikt TypeOf
om de compatibiliteit van twee objectverwijzingsvariabelen met verschillende gegevenstypen te testen.
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)
De variabele refInteger
heeft een runtimetype .Integer
Het is compatibel met Integer
maar niet met Double
. De variabele refForm
heeft een runtimetype .Form Het is compatibel met Form omdat dat het type is, met, omdat FormControl overneemt van Control, en met IComponent omdat Form ze overnemen van Component, die implementeert IComponent. refForm
Is echter niet compatibel met Label.