Property — Instrukcja
Deklaruje nazwę właściwości oraz procedury właściwości używane do przechowywania i pobierania wartości właściwości.
Składnia
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
[ <attributelist> ] [ accessmodifier ] Get
[ statements ]
End Get
[ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
[ statements ]
End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
generatora
attributelist
Opcjonalny. Lista atrybutów, które mają zastosowanie do tej właściwości lub
Get
Set
procedury. Zobacz Lista atrybutów.Default
Opcjonalny. Określa, że ta właściwość jest właściwością domyślną dla klasy lub struktury, na której jest zdefiniowana. Właściwości domyślne muszą akceptować parametry i można je ustawiać i pobierać bez określania nazwy właściwości. Jeśli zadeklarujesz właściwość jako
Default
, nie można jej użyćPrivate
we właściwości lub w jednej z jej procedur właściwości.accessmodifier
Opcjonalnie w instrukcji
Property
i na co najwyżej jednej z instrukcjiGet
iSet
. Może być jednym z następujących elementów:Zobacz Poziomy dostępu w Visual Basic.
propertymodifiers
Opcjonalny. Może być jednym z następujących elementów:
MustOverride Overrides
NotOverridable Overrides
Shared
Opcjonalny. Zobacz Udostępnione.
Shadows
Opcjonalny. Zobacz Cienie.
ReadOnly
Opcjonalny. Zobacz ReadOnly.
WriteOnly
Opcjonalny. Zobacz WriteOnly.
Iterator
Opcjonalny. Zobacz Iterator.
name
Wymagany. Nazwa właściwości. Zobacz Nazwy zadeklarowanych elementów.
parameterlist
Opcjonalny. Lista lokalnych nazw zmiennych reprezentujących parametry tej właściwości oraz możliwe dodatkowe parametry
Set
procedury. Zobacz Lista parametrów.returntype
Wymagane, jeśli
Option Strict
ma wartośćOn
. Typ danych wartości zwracanej przez tę właściwość.Implements
Opcjonalny. Wskazuje, że ta właściwość implementuje co najmniej jedną właściwość zdefiniowaną w interfejsie zaimplementowanym przez tę właściwość zawierającą klasę lub strukturę. Zobacz Implements, instrukcja.
implementslist
Wymagane w przypadku
Implements
dostarczenia. Lista implementowanych właściwości.implementedproperty [ , implementedproperty ... ]
Każda z nich
implementedproperty
ma następującą składnię i części:interface.definedname
Element opis interface
Wymagane. Nazwa interfejsu zaimplementowanego przez tę właściwość zawierającą klasę lub strukturę. definedname
Wymagany. Nazwa, za pomocą której właściwość jest zdefiniowana w pliku interface
.Get
Opcjonalny. Wymagane, jeśli właściwość jest oznaczona .
ReadOnly
Uruchamia procedurę właściwości używanąGet
do zwracania wartości właściwości. InstrukcjaGet
nie jest używana z automatycznie zaimplementowanymi właściwościami.statements
Opcjonalny. Blok instrukcji do uruchomienia w ramach
Get
procedury lubSet
.End Get
Przerywa procedurę
Get
właściwości.Set
Opcjonalny. Wymagane, jeśli właściwość jest oznaczona .
WriteOnly
Uruchamia proceduręSet
właściwości używaną do przechowywania wartości właściwości. InstrukcjaSet
nie jest używana z automatycznie zaimplementowanymi właściwościami.End Set
Przerywa procedurę
Set
właściwości.End Property
Przerywa definicję tej właściwości.
Uwagi
Instrukcja Property
wprowadza deklarację właściwości. Właściwość może mieć procedurę (tylko do odczytu), procedurę Get
Set
(tylko zapis) lub obie (odczyt-zapis). Można pominąć procedurę Get
i Set
podczas korzystania z właściwości implementowanej automatycznie. Aby uzyskać więcej informacji, zobacz Automatycznie zaimplementowane właściwości.
Można używać Property
tylko na poziomie klasy. Oznacza to, że kontekst deklaracji dla właściwości musi być klasą, strukturą, modułem lub interfejsem i nie może być plikiem źródłowym, przestrzenią nazw, procedurą lub blokiem. Aby uzyskać więcej informacji, zobacz Konteksty deklaracji i Domyślne poziomy dostępu.
Domyślnie właściwości używają dostępu publicznego. Poziom dostępu właściwości można dostosować za pomocą modyfikatora dostępu w Property
instrukcji i opcjonalnie dostosować jedną z procedur właściwości do bardziej restrykcyjnego poziomu dostępu.
Program Visual Basic przekazuje parametr do Set
procedury podczas przypisywania właściwości. Jeśli nie podasz parametru dla Set
programu , zintegrowane środowisko projektowe (IDE) używa niejawnego parametru o nazwie value
. Ten parametr zawiera wartość, która ma zostać przypisana do właściwości. Zazwyczaj ta wartość jest przechowywana w prywatnej zmiennej lokalnej i zwracana za każdym razem, gdy Get
zostanie wywołana procedura.
Reguły
Mieszane poziomy dostępu. Jeśli definiujesz właściwość odczytu i zapisu, możesz opcjonalnie określić inny poziom dostępu dla
Get
procedury lubSet
, ale nie dla obu tych metod. Jeśli to zrobisz, poziom dostępu do procedury musi być bardziej restrykcyjny niż poziom dostępu właściwości. Jeśli na przykład właściwość jest zadeklarowanaFriend
, można zadeklarować proceduręSet
Private
, ale niePublic
.Jeśli definiujesz
ReadOnly
właściwość lubWriteOnly
, pojedyncza procedura właściwości (Get
lubSet
, odpowiednio) reprezentuje całą właściwość. Nie można zadeklarować innego poziomu dostępu dla takiej procedury, ponieważ spowoduje to ustawienie dwóch poziomów dostępu dla właściwości.Zwracany typ. Instrukcja
Property
może zadeklarować typ danych zwracanej wartości. Można określić dowolny typ danych lub nazwę wyliczenia, struktury, klasy lub interfejsu.Jeśli nie określisz
returntype
parametru , właściwość zwraca wartośćObject
.Implementacja. Jeśli ta właściwość używa słowa kluczowego
Implements
, zawierająca klasę lub strukturę musi mieć instrukcjęImplements
bezpośrednio po jejClass
instrukcji lubStructure
. InstrukcjaImplements
musi zawierać każdy interfejs określony w plikuimplementslist
. Jednak nazwa, za pomocą której interfejs definiujeProperty
element (indefinedname
) nie musi być taka sama jak nazwa tej właściwości (w plikuname
).
Zachowanie
Zwracanie z procedury właściwości.
Get
Gdy procedura orSet
powróci do kodu wywołującego, wykonanie będzie kontynuowane z instrukcją po instrukcji, która ją wywołała.Instrukcje
Exit Property
iReturn
powodują natychmiastowe wyjście z procedury właściwości. Dowolna liczba instrukcjiExit Property
iReturn
może być wyświetlana w dowolnym miejscu procedury i można mieszaćExit Property
iReturn
instrukcje.Wartość zwracana. Aby zwrócić wartość z
Get
procedury, możesz przypisać wartość do nazwy właściwości lub dołączyć ją w instrukcjiReturn
. Poniższy przykład przypisuje wartość zwracaną do nazwyquoteForTheDay
właściwości, a następnie używaExit Property
instrukcji do zwrócenia.Private quoteValue As String = "No quote assigned yet."
ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End Property
Jeśli nie
Exit Property
przypiszesz wartości doname
,Get
procedura zwraca wartość domyślną dla typu danych właściwości.Instrukcja
Return
w tym samym czasie przypisuje wartość zwracanąGet
przez procedurę i zamyka procedurę. W poniższym przykładzie pokazano to.Private quoteValue As String = "No quote assigned yet."
ReadOnly Property QuoteForTheDay() As String Get Return quoteValue End Get End Property
Przykład
Poniższy przykład deklaruje właściwość w klasie.
Class Class1
' Define a local variable to store the property value.
Private propertyValue As String
' Define the property.
Public Property Prop1() As String
Get
' The Get property procedure is called when the value
' of a property is retrieved.
Return propertyValue
End Get
Set(ByVal value As String)
' The Set property procedure is called when the value
' of a property is modified. The value to be assigned
' is passed in the argument to Set.
propertyValue = value
End Set
End Property
End Class