Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Obecné proměnné objektů (tj. proměnné, které deklarujete jako Object) mohou obsahovat objekty z libovolné třídy. Při použití proměnných typu Objectmůže být nutné provést různé akce na základě třídy objektu, například některé objekty nemusí podporovat konkrétní vlastnost nebo metodu. Visual Basic poskytuje dva způsoby určení typu objektu, který je uložen v proměnné objektu: TypeName funkce a TypeOf...Is operátor.
TypeName a TypeOf... Je
Funkce TypeName vrátí řetězec a je nejlepší volbou v případě, že potřebujete uložit nebo zobrazit název třídy objektu, jak je znázorněno v následujícím fragmentu kódu:
Dim Ctrl As Control = New TextBox
MsgBox(TypeName(Ctrl))
Operátor TypeOf...Is je nejlepší volbou pro testování typu objektu, protože je mnohem rychlejší než ekvivalentní porovnání řetězců pomocí TypeName. Následující fragment kódu se používá TypeOf...Is v rámci If...Then...Else příkazu:
If TypeOf Ctrl Is Button Then
MsgBox("The control is a button.")
End If
Je třeba poznamenat, že je na místě opatrnost. Operátor TypeOf...Is vrátí True , pokud je objekt určitého typu nebo je odvozen z určitého typu. Téměř vše, co s jazykem Visual Basic děláte, zahrnuje objekty, které zahrnují některé prvky, které nejsou obvykle považovány za objekty, jako jsou řetězce a celá čísla. Tyto objekty jsou odvozeny od a dědí metody z Object. Při předání Integer a vyhodnocení pomocí Objectoperátor TypeOf...Is vrátí True. Následující příklad hlásí, že parametr InParam je jak an Object , tak i Integer:
Sub CheckType(ByVal InParam As Object)
' Both If statements evaluate to True when an
' Integer is passed to this procedure.
If TypeOf InParam Is Object Then
MsgBox("InParam is an Object")
End If
If TypeOf InParam Is Integer Then
MsgBox("InParam is an Integer")
End If
End Sub
Následující příklad používá obě TypeOf...Is a TypeName k určení typu objektu předaného v argumentu Ctrl . Postup TestObject volá ShowType se třemi různými druhy kontrolních prvků.
Spustit příklad
Vytvořte nový projekt aplikace pro Windows a do formuláře přidejte ovládací prvek Button, ovládací prvek CheckBox a ovládací prvek RadioButton.
Z formuláře pomocí tlačítka zavolejte proceduru
TestObject.Do formuláře přidejte následující kód:
Sub ShowType(ByVal Ctrl As Object) 'Use the TypeName function to display the class name as text. MsgBox(TypeName(Ctrl)) 'Use the TypeOf function to determine the object's type. If TypeOf Ctrl Is Button Then MsgBox("The control is a button.") ElseIf TypeOf Ctrl Is CheckBox Then MsgBox("The control is a check box.") Else MsgBox("The object is some other type of control.") End If End Sub Protected Sub TestObject() 'Test the ShowType procedure with three kinds of objects. ShowType(Me.Button1) ShowType(Me.CheckBox1) ShowType(Me.RadioButton1) End Sub