Deklaracja zmiennej obiektu (Visual Basic)
Instrukcja deklaracji normalnych umożliwia deklarowanie zmiennej obiektu.Dla typu danych, określ albo Object (to znaczy Typ danych Object) lub więcej określonej klasy, z którego ma zostać utworzony obiekt.
Deklarując zmienną jako Object jest taka sama jak deklarowanie go jako System.Object.
Przy deklarowaniu zmiennej z klasą określonego obiektu, może uzyskać dostęp do metod i właściwości udostępniane przez tę klasę i klas, z których dziedziczy.Przy deklarowaniu zmiennych z Object, może uzyskać dostęp tylko członkowie Object klasy, chyba że można włączyć Option Strict Off do umożliwienia późnego wiązania.
Składnia deklaracji
Aby zadeklarować zmienną obiektu, należy użyć następującej składni:
Dim variablename As [New] { objectclass | Object }
You can also specify Publicznego (Visual Basic), Chronione (Visual Basic), Przyjaciel (Visual Basic), Protected Friend, Prywatne (Visual Basic), Udostępnione (Visual Basic), or Statyczne (Visual Basic) in the declaration.Prawidłowe są następujące deklaracje przykład:
Private objA As Object
Static objB As System.Windows.Forms.Label
Dim objC As System.OperatingSystem
Późnym wiązaniem i wczesne wiązanie
Czasami określonej klasy jest nieznana, dopóki ten kod działa.W takim przypadku należy zadeklarować zmienną obiektu, z Object typu danych.Spowoduje to utworzenie ogólne odniesienia do dowolnego typu obiektu i określonej klasy jest przypisywany w czasie wykonywania.Jest to tak zwane późnego wiązania.Późnym wiązaniem wymaga dodatkowego czasu wykonania.Ogranicza również kod do metod i właściwości klasy, które ostatnio zostały przypisane do niego.To może spowodować błędy w czasie wykonywania kodu próbuje dostęp członkowie innej klasy.
Znając określonej klasy w czasie kompilacji, należy zadeklarować zmienną obiektu, być tej klasy.Jest to tak zwane wczesnego wiązania.Wczesne wiązanie poprawia wydajność i gwarantuje dostęp do metod i właściwości określonej klasy kodu.W poprzednim deklaracje przykład, jeśli zmienna objA używa obiektów klasy System.Windows.Forms.Label, należy określić As System.Windows.Forms.Label w swojej deklaracji.
Zalety wczesnego wiązania
Deklarowanie zmiennej obiektu jako określonej klasy daje wiele korzyści:
Sprawdzanie typu automatyczne
Zapewniony dostęp do wszystkich członków określonej klasy
Obsługa technologii Microsoft IntelliSense w edytorze kodu
Ulepszona czytelność kodu programu
Mniej błędów w kodzie
Błędy złowionych na czas kompilacji raczej niż czas jednostkowy
Szybsze wykonywanie kodu
Dostęp do obiektu zmiennej członków
Gdy Option Strict jest włączony On, zmiennej obiektowej można uzyskać dostęp do metod i właściwości klasy, z której można zadeklarować.Poniższy przykład ilustruje to.
' 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
W tym przykładzie p można używać tylko członkowie Object klasy, które nie obejmują Left właściwości.Z drugiej strony q została uznana za typu Label, więc można użyć, metod i właściwości Label klasy w System.Windows.Forms obszaru nazw.
Elastyczność zmienne obiektowe
Podczas pracy z obiektami w hierarchii dziedziczenia, masz wybór klasy deklarowania zmiennych obiektu.Dokonując wyboru, musisz rozłożyć elastyczności przydziału obiekt przed dostępem do elementy klasy.Na przykład, rozważmy hierarchii dziedziczenia, która prowadzi do System.Windows.Forms.Form klasy:
Załóżmy, że aplikacja definiuje klasy formularza o nazwie specialForm, która dziedziczy z klasy Form.Można zadeklarować zmienną obiektu, która odnosi się konkretnie do specialForm, jak pokazano na poniższym przykładzie.
Public Class specialForm
Inherits System.Windows.Forms.Form
' Insert code defining methods and properties of specialForm.
End Class
Dim nextForm As New specialForm
Oświadczenie w poprzednim przykładzie ogranicza zmiennej nextForm do obiektów klasy specialForm, ale powoduje to również metody i właściwości specialForm dostępne do nextForm, jak również wszystkich członków wszystkich klas, z którego specialForm dziedziczy.
Bardziej ogólne zmiennej obiektowej można wprowadzać ona być typu Form, jak pokazano na poniższym przykładzie.
Dim anyForm As System.Windows.Forms.Form
Oświadczenie w poprzednim przykładzie pozwala przypisać każdy formularz w aplikacji, aby anyForm.Jednakże chociaż anyForm można uzyskać dostęp do wszystkich członków klasy Form, to nie można używać żadnych dodatkowych metod lub właściwości zdefiniowane dla szczególnych formularzy, takich jak specialForm.
Wszystkich członków klasy podstawowej są dostępne dla klas pochodnych, ale dodatkowych członków klasy pochodne są niedostępne dla klasy podstawowej.
Zobacz też
Zadania
Jak: deklarowanie zmiennej obiektu i przypisać jej obiekt w języku Visual Basic
Jak: dostęp członkowie obiektu (Visual Basic)
Informacje
Koncepcje
Zmienne obiektu języka Visual Basic
Przypisanie zmiennej obiektu (Visual Basic)