Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
attributelistOpcjonalny. Lista atrybutów, które mają zastosowanie do tej właściwości lub
GetSetprocedury. Zobacz Lista atrybutów.DefaultOpcjonalny. 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ćPrivatewe właściwości lub w jednej z jej procedur właściwości. Przykłady i szczegółowe wskazówki można znaleźć w temacie How to: Declare and Call a Default Property in Visual Basic (Instrukcje: deklarowanie i wywoływanie właściwości domyślnej w Visual Basic).accessmodifierOpcjonalnie w instrukcji
Propertyi na co najwyżej jednej z instrukcjiGetiSet. Może być jednym z następujących elementów:Zobacz Poziomy dostępu w Visual Basic.
propertymodifiersOpcjonalny. Może być jednym z następujących elementów:
MustOverride OverridesNotOverridable Overrides
SharedOpcjonalny. Zobacz Udostępnione.
ShadowsOpcjonalny. Zobacz Cienie.
ReadOnlyOpcjonalny. Zobacz ReadOnly.
WriteOnlyOpcjonalny. Zobacz WriteOnly.
IteratorOpcjonalny. Zobacz Iterator.
nameWymagany. Nazwa właściwości. Zobacz Nazwy zadeklarowanych elementów.
parameterlistOpcjonalny. Lista lokalnych nazw zmiennych reprezentujących parametry tej właściwości oraz możliwe dodatkowe parametry
Setprocedury. Właściwości sparametryzowane są często używane do tworzenia indeksatorów lub właściwości domyślnych, które zezwalają na dostęp podobny do kolekcji. Zobacz Lista parametrów i Porady: deklarowanie i wywoływanie właściwości domyślnej w Visual Basic.returntypeWymagane, jeśli
Option Strictma wartośćOn. Typ danych wartości zwracanej przez tę właściwość.ImplementsOpcjonalny. 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.
implementslistWymagane w przypadku
Implementsdostarczenia. Lista implementowanych właściwości.implementedproperty [ , implementedproperty ... ]Każda z nich
implementedpropertyma następującą składnię i części:interface.definednameElement opis interfaceWymagany. Nazwa interfejsu zaimplementowanego przez tę właściwość zawierającą klasę lub strukturę. definednameWymagany. Nazwa, za pomocą której właściwość jest zdefiniowana w pliku interface.GetOpcjonalny. Wymagane, jeśli właściwość jest oznaczona .
ReadOnlyUruchamia procedurę właściwości używanąGetdo zwracania wartości właściwości. InstrukcjaGetnie jest używana z automatycznie zaimplementowanymi właściwościami.statementsOpcjonalny. Blok instrukcji do uruchomienia w ramach
Getprocedury lubSet.End GetPrzerywa procedurę
Getwłaściwości.SetOpcjonalny. Wymagane, jeśli właściwość jest oznaczona .
WriteOnlyUruchamia proceduręSetwłaściwości używaną do przechowywania wartości właściwości. InstrukcjaSetnie jest używana z automatycznie zaimplementowanymi właściwościami.End SetPrzerywa procedurę
Setwłaściwości.End PropertyPrzerywa 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ę GetSet (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. Aby uzyskać szczegółowe przykłady mieszanych poziomów dostępu, zobacz Instrukcje: deklarowanie właściwości za pomocą mieszanych poziomów dostępu.
Program Visual Basic przekazuje parametr do Set procedury podczas przypisywania właściwości. Jeśli nie podasz parametru dla Setprogramu , 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
Getprocedury 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ęSetPrivate, ale niePublic.Jeśli definiujesz
ReadOnlywłaściwość lubWriteOnly, pojedyncza procedura właściwości (GetlubSet, 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
Propertymoż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
returntypeparametru , 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ęImplementsbezpośrednio po jejClassinstrukcji lubStructure. InstrukcjaImplementsmusi zawierać każdy interfejs określony w plikuimplementslist. Jednak nazwa, za pomocą której interfejs definiujePropertyelement (indefinedname) nie musi być taka sama jak nazwa tej właściwości (w plikuname).
Zachowanie
Zwracanie z procedury właściwości.
GetGdy procedura orSetpowróci do kodu wywołującego, wykonanie będzie kontynuowane z instrukcją po instrukcji, która ją wywołała.Instrukcje
Exit PropertyiReturnpowodują natychmiastowe wyjście z procedury właściwości. Dowolna liczba instrukcjiExit PropertyiReturnmoże być wyświetlana w dowolnym miejscu procedury i można mieszaćExit PropertyiReturninstrukcje.Wartość zwracana. Aby zwrócić wartość z
Getprocedury, możesz przypisać wartość do nazwy właściwości lub dołączyć ją w instrukcjiReturn. Poniższy przykład przypisuje wartość zwracaną do nazwyquoteForTheDaywłaściwości, a następnie używaExit Propertyinstrukcji do zwrócenia.Private quoteValue As String = "No quote assigned yet."ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End PropertyJeśli nie
Exit Propertyprzypiszesz wartości doname,Getprocedura zwraca wartość domyślną dla typu danych właściwości.Instrukcja
Returnw tym samym czasie przypisuje wartość zwracanąGetprzez 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
Właściwości sparametryzowane
W poniższym przykładzie pokazano, jak utworzyć sparametryzowaną właściwość, nazywaną również indeksatorem, który umożliwia dostęp podobny do tablicy do kolekcji:
Class SampleCollection
' Define a local collection to store strings.
Private items As New List(Of String)
' Define a parameterized property (indexer) for the collection.
Default Public Property Item(ByVal index As Integer) As String
Get
' Return the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
Return items(index)
Else
Return Nothing
End If
End Get
Set(ByVal value As String)
' Set the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
items(index) = value
ElseIf index = items.Count Then
' Allow adding new items at the end.
items.Add(value)
End If
End Set
End Property
' Add a Count property for convenience.
Public ReadOnly Property Count As Integer
Get
Return items.Count
End Get
End Property
' Add method to add items.
Public Sub Add(ByVal item As String)
items.Add(item)
End Sub
End Class
Aby uzyskać kompleksowe przykłady użycia właściwości, w tym automatyczne implementacje, poziomy dostępu mieszanego i scenariusze weryfikacji, zobacz Procedury właściwości.
Zobacz też
Typy właściwości i funkcje
Zaawansowane scenariusze właściwości
- Porady: deklarowanie i wywoływanie właściwości domyślnej w Visual Basic
- Instrukcje: deklarowanie właściwości za pomocą mieszanych poziomów dostępu