Delen via


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  

Onderdelen

result
Terug. Een Boolean waarde.

objectexpression
Verplicht. Elke expressie die resulteert in een verwijzingstype.

typename
Verplicht. 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
Klasse objectexpression is van het type typename of neemt over van typename
Structuur objectexpression is van het type typename
gebruikersinterface objectexpression typename implementeert of neemt over van een klasse die implementeerttypename

Als het uitvoeringstype objectexpression voldoet aan het compatibiliteitscriterium, result is True. Anders wordt resultFalse. Als objectexpression null is, TypeOfretourneert ...Is en ... retourneert TrueFalse.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.

Voorbeeld

In het volgende voorbeeld worden ...Is-expressies gebruikt TypeOfom 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.

Zie ook