Sdílet prostřednictvím


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:

Object

    Component

      Control

        ScrollableControl

          ContainerControl

            Form

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

New – operátor (Visual Basic)

Option Strict – příkaz

Koncepty

Proměnné objektu v jazyce Visual Basic

Přiřazení proměnné objektu (Visual Basic)

Hodnoty proměnné objektu (Visual Basic)

Odvození místního typu (Visual Basic)