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 IsNotuntuk 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.

Lihat juga