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)