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  

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 objectexpressiontypename implementeert of neemt over van een klasse die implementeerttypename

Als het uitvoeringstype objectexpression voldoet aan het compatibiliteitscriterium, result is True. Anders is Falsehet result . 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.

Opmerking

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