Deklarace proměnné objektu (Visual Basic)
Pomocí příkazu normální deklarace deklarovat objektové proměnné.Typ dat je určit buď Object (je Datový typ objektu) nebo konkrétní třídy, ze kterého je vytvořen objekt.
Deklarování proměnné jako Object je stejný jako deklarování jako Object.
Při deklarování proměnné s třídou objektu přístup všechny metody a vlastnosti, které jsou vystaveny třídy a třídy, ze které se dědí.Pokud deklarujete proměnnou s Object, má přístup pouze členové Object , pokud zapnete třídu Option Strict Off povolit pozdní vazba.
Syntaxe deklarace
Deklarovat objektové proměnné, použijte následující syntaxi:
Dim variablename As [New] { objectclass | Object }
You can also specify Public (Visual Basic), Protected (Visual Basic), Friend (Visual Basic), Protected Friend, Private (Visual Basic), Shared (Visual Basic), or Static (Visual Basic) in the declaration.Platné jsou například následující prohlášení:
Private objA As Object
Static objB As System.Windows.Forms.Label
Dim objC As System.OperatingSystem
Pozdní vazby a časné vazby
Někdy neznámý určité třídy, dokud kódu.V tomto případě musí deklarovat objektové proměnné, které se Object datového typu.Vytvoří obecný odkaz na jakýkoli typ objektu a při běhu je přiřazena konkrétní třídy.To se nazývá pozdní vazba.Pozdní vazby vyžaduje další čas spuštění.Omezuje také kód metody a vlastnosti třídy, kterou jste naposledy k ní přiřadili.Pokud váš kód pokusí o přístup k členům různé třídy může způsobit chyby.
Pokud znáte konkrétní třídy v době kompilace, by měla deklarovat objektové proměnné, které se dané třídy.To se nazývá časné vazby.Časná vazba zlepšuje výkon a zaručuje přístup k kód metody a vlastnosti třídy zvláštní.V předchozím příkladu prohlášení, pokud je proměnná objA používá objekty třídy Label, měli byste určit As System.Windows.Forms.Label ve svém prohlášení.
Výhody časná vazba
Deklaraci objektové proměnné jako konkrétní třídy nabízí několik výhod:
Kontrola typu Automatické
Zaručen přístup pro všechny členy určité třídy.
Podpora technologie Microsoft IntelliSense Editor kódu
Lepší čitelnost kódu
Méně chyb v kódu
Ulovené v chyby kompilace spíše než čas spuštění
Rychlejší spuštění kódu
Přístup k objektu proměnné členů
Při Option Strict je On, metody a vlastnosti třídy, se kterou deklarujete, je přístup objektové proměnné.To ukazuje následující příklad.
' Option statements must precede all other source file lines.
Option Strict On
' Imports statement must precede all declarations in the source file.
Imports System.Windows.Forms
Public Sub accessMembers()
Dim p As Object
Dim q As System.Windows.Forms.Label
p = New System.Windows.Forms.Label
q = New System.Windows.Forms.Label
Dim j, k As Integer
' The following statement generates a compiler ERROR.
j = p.Left
' The following statement retrieves the left edge of the label in pixels.
k = q.Left
End Sub
V tomto příkladu p lze použít pouze členové Object třídy, které nezahrnují Left vlastnost.Na druhé straně q byla prohlášena za typ Label, takže jej můžete použít metody a vlastnosti Label třídy v System.Windows.Forms oboru názvů.
Pružnost objektové proměnné
Při práci s objekty v hierarchii dědičnosti, mají volby, které třídy pro deklarování objektové proměnné.Při této volbě musíte zůstatek flexibilitu přiřazení objektu proti přístupu členy třídy.Zvažte například vede k hierarchii dědičnosti Form třídy:
Předpokládejme, že aplikace definuje třídu formulář nazvaný specialForm, které dědí z třídy Form.Můžete deklarovat objektové proměnné odkazující k specialForm, jak ukazuje následující příklad.
Public Class specialForm
Inherits System.Windows.Forms.Form
' Insert code defining methods and properties of specialForm.
End Class
Dim nextForm As New specialForm
Prohlášení uvedené v předchozím příkladu omezuje proměnné nextForm objektů třídy specialForm, ale umožňuje také metody a vlastnosti specialForm k dispozici nextForm, jakož i všechny členy všech tříd, z níž specialForm dědí.
Další obecné objektové proměnné můžete provést jejím typu Form, jak ukazuje následující příklad.
Dim anyForm As System.Windows.Forms.Form
Prohlášení uvedené v předchozím příkladu umožňuje přiřadit všechny formuláře v aplikaci anyForm.Však sice anyForm přístup členy třídy Form, nelze použít, žádné další metody nebo vlastnosti definované pro určitý formulář jako specialForm.
Členy základní třídy odvozené třídy k dispozici, ale jsou k dispozici základní třídy další členy odvozené třídy.
Viz také
Úkoly
Postupy: Deklarace objektové proměnné a přiřazení objektu k proměnné v jazyce Visual Basic
Postupy: Přístup ke členům v objektu (Visual Basic)
Referenční dokumentace
Koncepty
Proměnné objektu v jazyce Visual Basic
Přiřazení proměnné objektu (Visual Basic)