Udostępnij za pośrednictwem


TypeOf — Operator (Visual Basic)

Sprawdza, czy typ środowiska uruchomieniowego wyniku wyrażenia jest zgodny z określonym typem.

Składnia

result = TypeOf objectexpression Is typename  
result = TypeOf objectexpression IsNot typename  

generatora

result
Zwracane. Boolean Wartość.

objectexpression
Wymagany. Dowolne wyrażenie, które oblicza typ odwołania.

typename
Wymagany. Dowolna nazwa typu danych.

Uwagi

Operator TypeOf określa, czy typ objectexpression czasu wykonywania jest zgodny z typename. Zgodność zależy od kategorii typów .typename W poniższej tabeli przedstawiono sposób określania zgodności.

Kategoria typu typename Kryterium zgodności
Klasa objectexpression jest typu typename lub dziedziczy z typename
Struktura objectexpression jest typu typename
Interfejs objectexpression implementuje typename lub dziedziczy z klasy, która implementuje typename

Jeśli typ objectexpression czasu wykonywania spełnia kryterium zgodności, result to True. result W przeciwnym razie wartość to False. Jeśli objectexpression ma wartość null, TypeOffunkcja ...Is zwraca Falsewartość , i ...IsNot zwraca wartość True.

TypeOf jest zawsze używany ze Is słowem kluczowym do konstruowania TypeOfwyrażenia ...Is lub słowa kluczowego IsNotTypeOfdo konstruowania wyrażenia ...IsNot .

Przykład

W poniższym przykładzie użyto TypeOfwyrażeń ...Is , aby przetestować zgodność typu dwóch zmiennych referencyjnych obiektów z różnymi typami danych.

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)

Zmienna refInteger ma typ Integerczasu wykonywania . Jest zgodny z elementem Integer , ale nie z Double. Zmienna refForm ma typ Formczasu wykonywania . Jest on zgodny z Form tym, ponieważ jest to jego typ, z Control powodu, że Form dziedziczy z Control, i z IComponent powodu Form dziedziczenia z Componentklasy , który implementuje IComponent. Jednak refForm nie jest zgodny z .Label

Zobacz też