Udostępnij za pośrednictwem


Właściwości zaimplementowane automatycznie (Visual Basic)

Właściwości auto wdrożone można szybko określić właściwości klasy bez konieczności pisania kodu Get i Set właściwości.Podczas pisania kodu dla właściwości auto wdrożone kompilatora Visual Basic automatycznie utworzy pole private do przechowywania zmiennej właściwości oprócz tworzenia skojarzonym Get i Set procedur.

Właściwości auto wdrożone właściwości, łącznie z wartości domyślnej, może być zadeklarowana w jednym wierszu.W poniższym przykładzie przedstawiono trzy deklaracji właściwości.

Public Property Name As String 
Public Property Owner As String = "DefaultName" 
Public Property Items As New List(Of String) From {"M", "T", "W"}
Public Property ID As New Guid()

Właściwości auto realizowane jest równoznaczne z właściwości, dla których wartość właściwości jest przechowywana w pole private.Poniższy przykład kodu pokazuje właściwości auto wdrożone.

Property Prop2 As String = "Empty"

Poniższy przykład kodu pokazuje równoważny kod w poprzednim przykładzie właściwość realizowane automatycznie.

Private _Prop2 As String = "Empty" 
Property Prop2 As String 
    Get 
        Return _Prop2
    End Get 
    Set(ByVal value As String)
        _Prop2 = value
    End Set 
End Property

Tworzenie kopii pola

Przy deklarowaniu właściwości auto wdrożone, Visual Basic automatycznie tworzy ukryte pole prywatnej o nazwie Tworzenie kopii pola zawiera wartość właściwości.Nazwa pola oporowe jest nazwa właściwości auto wdrożone poprzedzone znaku podkreślenia (_).Na przykład, jeśli deklarować właściwości auto wdrożone, o nazwie ID, o nazwie pola oporowe _ID.Jeśli dołączysz członek klasy o nazwie _ID, produkują konflikt nazw i Visual Basic zgłasza błąd kompilatora.

Pole oporowe również ma następujące cechy:

  • Modyfikator dostępu dla pola oporowe jest zawsze Private, nawet w przypadku, gdy samą właściwość ma poziom dostępu, takich jak Public.

  • Jeśli właściwość jest oznaczony jako Shared, pole oporowe również jest udostępniony.

  • Atrybuty określonego dla właściwości nie dotyczą pola wykonywania kopii.

  • Pole oporowe jest możliwy z kod wewnątrz klasy i z narzędzi debugujących, takich jak okno czujki.Jednak pole oporowe nie pokazuje się liście zakończenia programu word IntelliSense.

Inicjowanie właściwości Auto wdrożone

Dowolne wyrażenie, używany do zainicjowania pola jest prawidłowy dla inicjowanie właściwości auto wdrożone.Podczas inicjowania właściwości auto wdrożone wyrażenie jest oceniane i przekazywane do Set procedury dla właściwości.Następujące przykłady kodu przedstawiają niektóre właściwości auto wdrożone, zawierające wartości początkowe.

Property FirstName As String = "James" 
Property PartNo As Integer = 44302
Property Orders As New List(Of Order)(500)

Nie można zainicjować właściwość realizowane automatycznie, który jest członkiem Interface, lub taki, który jest oznaczony jako MustOverride.

Kiedy deklarować właściwości auto realizowane jako członek Structure, tylko można zainicjować właściwości auto wdrożone oznaczono jako Shared.

Przy deklarowaniu właściwości auto realizowane jako tablica, nie można określić granice tablicy jawne.Jednakże można podać wartość za pomocą inicjatora tablicy, jak pokazano w poniższych przykładach.

Property Grades As Integer() = {90, 73}
Property Temperatures As Integer() = New Integer() {68, 54, 71}

Definicje właściwości, które wymagają standardowej składni

Właściwości auto realizowane są wygodne i obsługuje wiele scenariuszy programowania.Jednak istnieją sytuacje, w których nie można używać właściwości auto wdrożone i zamiast tego należy użyć standardu, lub rozwinięta, składnia właściwości.

Należy użyć składni rozszerzonej definicji właściwości, jeśli chcesz wykonać jedną z następujących czynności:

  • Dodawanie kodu do Get lub Set procedury właściwości, takie jak kod do sprawdzania poprawności wartości przychodzących w Set procedury.Na przykład można sprawdzić, czy ciąg, który reprezentuje numer telefonu zawiera wymaganą liczbę cyfr przed ustawieniem wartości właściwości.

  • Określenie różnych ułatwień dostępu dla Get i Set procedury.Na przykład, można utworzyć Set procedury Private i Get procedury Public.

  • Tworzenie właściwości, które są WriteOnly lub ReadOnly.

  • Użyj właściwości sparametryzowana (łącznie z Default właściwości).Należy zadeklarować rozszerzonej właściwości, aby określić parametr dla właściwości lub aby określić dodatkowe parametry dla Set procedury.

  • Umieścić atrybutu w polu oporowe lub zmienić poziom dostępu pola wykonywania kopii.

  • Zapewnić komentarze XML dla pola wykonywania kopii.

Rozwijanie właściwości Auto wdrożone

Jeśli trzeba przekonwertować właściwości auto wdrożone w rozszerzonej właściwości, który zawiera Get lub Set procedury, Edytor kodu języka Visual Basic można automatycznie wygenerować Get i Set procedur i End Property instrukcji dla właściwości.Kod jest generowany, jeśli kursor zostanie umieszczony na następujących pusty wiersz Property instrukcji, type a g (dla Get) lub s (dla Set) i naciśnij klawisz ENTER.Edytor kodu języka Visual Basic automatycznie generuje Get lub Set procedury dla właściwości tylko do odczytu i tylko do zapisu po naciśnięciu klawisza ENTER na końcu Property instrukcji.

Zobacz też

Zadania

Porady: deklarowanie i wywoływanie w właściwości domyślnej w Visual Basic

Porady: deklarowanie właściwości z mieszanymi poziomami dostępu (Visual Basic)

Informacje

Property — Instrukcja

ReadOnly (Visual Basic)

WriteOnly (Visual Basic)

Inne zasoby

Obiekty i klasy w Visual Basic