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, TypeOf
funkcja ...Is
zwraca False
wartość , i ...IsNot
zwraca wartość True
.
TypeOf
jest zawsze używany ze Is
słowem kluczowym do konstruowania TypeOf
wyrażenia ...Is
lub słowa kluczowego IsNot
TypeOf
do konstruowania wyrażenia ...IsNot
.
Przykład
W poniższym przykładzie użyto TypeOf
wyraż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 Integer
czasu 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