Operator TypeOf (Visual Basic)
Memeriksa apakah jenis runtime dari hasil ekspresi adalah jenis yang kompatibel dengan jenis yang ditentukan.
Sintaks
result = TypeOf objectexpression Is typename
result = TypeOf objectexpression IsNot typename
Generator
result
Dikembalikan. Nilai Boolean
.
objectexpression
Harus diisi. Ekspresi apa pun yang mengevaluasi ke jenis referensi.
typename
Harus diisi. Nama jenis data apa pun.
Keterangan
Operator TypeOf
menentukan apakah jenis rrun-time objectexpression
kompatibel dengan typename
. Kompatibilitas tergantung pada kategori jenis typename
. Tabel berikut ini memperlihatkan bagaimana kompatibilitas ditentukan.
Jenis kategori typename |
Kriteria kompatibilitas |
---|---|
Kelas | objectexpression berjenis typename atau mewarisi dari typename |
Struktur | objectexpression adalah jenis typename |
Antarmuka | objectexpression mengimplementasikan typename atau mewarisi dari kelas yang menerapkan typename |
Jika jenis run-time objectexpression
memenuhi kriteria kompatibilitas, maka result
adalah True
. Bila tidak, maka result
is False
. Jika objectexpression
adalah null, maka TypeOf
...Is
mengembalikan False
, dan ...IsNot
mengembalikan True
.
TypeOf
selalu digunakan dengan kata kunci Is
untuk membuat ekspresi TypeOf
...Is
, atau dengan kata kunci IsNot
untuk membangun ekspresi TypeOf
...IsNot
.
Contoh
Contoh berikut menggunakan ekspresi TypeOf
...Is
untuk menguji kompatibilitas jenis dua variabel referensi objek dengan berbagai jenis data.
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)
Variabel refInteger
memiliki jenis run-time Integer
. Ini kompatibel dengan Integer
tetapi tidak dengan Double
. Variabel refForm
memiliki jenis run-time Form. Ini kompatibel dengan Form karena itu adalah jenisnya, dengan Control karena Form mewarisi dari Control, dan dengan IComponent karena Form mewarisi dari Component, yang mengimplementasikan IComponent. Namun, refForm
tidak kompatibel dengan Label.