Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Deklaruje název vlastnosti a procedury vlastnosti použité k uložení a načtení hodnoty vlastnosti.
Syntaxe
[ <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 ]
Součástky
attributelistNepovinné. Seznam atributů, které se vztahují na tuto vlastnost nebo
GetSetproceduru Viz seznam atributů.DefaultNepovinné. Určuje, že tato vlastnost je výchozí vlastností třídy nebo struktury, na které je definována. Výchozí vlastnosti musí přijímat parametry a lze je nastavit a načíst bez zadání názvu vlastnosti. Pokud vlastnost deklarujete jako
Default, nelze ji použítPrivatepro vlastnost ani pro některou z jejích procedur vlastností. Příklady a podrobné pokyny naleznete v tématu Postupy: Deklarace a volání výchozí vlastnosti v jazyce Visual Basic.accessmodifierVolitelné pro
Propertypříkaz a maximálně jeden zGetpříkazů aSetpříkazů. Může to být jedna z následujících možností:propertymodifiersNepovinné. Může to být jedna z následujících možností:
MustOverride OverridesNotOverridable Overrides
SharedNepovinné. Viz Sdílené.
ShadowsNepovinné. Podívejte se na stíny.
ReadOnlyNepovinné. Viz ReadOnly.
WriteOnlyNepovinné. Viz WriteOnly.
IteratorNepovinné. Viz Iterátor.
namePovinný: Název vlastnosti. Viz Deklarované názvy elementů.
parameterlistNepovinné. Seznam názvů místních proměnných představujících parametry této vlastnosti a možné další parametry
Setprocedury. Parametrizované vlastnosti se často používají k vytváření indexerů nebo výchozích vlastností, které umožňují přístup podobný kolekci. Viz seznam parametrů a postupy: Deklarace a volání výchozí vlastnosti v jazyce Visual Basic.returntypeVyžaduje se, pokud
Option StrictjeOn. Datový typ hodnoty vrácené touto vlastností.ImplementsNepovinné. Označuje, že tato vlastnost implementuje jednu nebo více vlastností, z nichž každá je definována v rozhraní implementovaném touto vlastností obsahující třídu nebo strukturu. Viz Implements – příkaz.
implementslistPožadováno, pokud
Implementsje zadáno. Seznam implementovaných vlastnostíimplementedproperty [ , implementedproperty ... ]Každá z nich
implementedpropertymá následující syntaxi a části:interface.definednameČást Popis interfacePovinný: Název rozhraní implementovaného touto vlastností obsahující třídu nebo strukturu. definednamePovinný: Název, podle kterého je vlastnost definována v interface.GetNepovinné. Požadováno, pokud je vlastnost označena
ReadOnly. Spustí proceduruGetvlastnosti, která se používá k vrácení hodnoty vlastnosti. PříkazGetse nepoužívá s automaticky implementovanými vlastnostmi.statementsNepovinné. Blok příkazů, které se mají spustit v rámci
Getprocedury.SetEnd GetUkončí proceduru
Getvlastnosti.SetNepovinné. Požadováno, pokud je vlastnost označena
WriteOnly. Spustí proceduruSetvlastnosti, která slouží k uložení hodnoty vlastnosti. PříkazSetse nepoužívá s automaticky implementovanými vlastnostmi.End SetUkončí proceduru
Setvlastnosti.End PropertyUkončí definici této vlastnosti.
Poznámky
Příkaz Property zavádí deklaraci vlastnosti. Vlastnost může mít proceduru Get (jen pro čtení), proceduru Set (pouze zápis) nebo obojí (čtení i zápis). Při použití automaticky implementované vlastnosti můžete tuto proceduru GetSet vynechat. Další informace naleznete v tématu Automaticky implementované vlastnosti.
Můžete použít Property pouze na úrovni třídy. To znamená, že kontext deklarace vlastnosti musí být třída, struktura, modul nebo rozhraní a nemůže být zdrojovým souborem, oborem názvů, postupem nebo blokem. Další informace naleznete v tématu Kontexty deklarace a výchozí úrovně přístupu.
Ve výchozím nastavení používají vlastnosti veřejný přístup. Úroveň přístupu vlastnosti můžete upravit pomocí modifikátoru přístupu v Property příkazu a volitelně můžete upravit jeden z jeho procedur na přísnější úroveň přístupu. Podrobné příklady smíšených úrovní přístupu naleznete v tématu Postupy: Deklarace vlastnosti se smíšenými úrovněmi přístupu.
Visual Basic předá procedurě Set parametr během přiřazení vlastností. Pokud nezadáte parametr , Setintegrované vývojové prostředí (IDE) použije implicitní parametr s názvem value. Tento parametr obsahuje hodnotu, která má být přiřazena k vlastnosti. Tuto hodnotu obvykle uložíte do privátní místní proměnné a vrátíte ji při každém Get volání procedury.
Pravidla
Smíšené úrovně přístupu. Pokud definujete vlastnost pro čtení i zápis, můžete volitelně zadat jinou úroveň přístupu pro
GetSetpostup, ale ne obojí. Pokud to uděláte, úroveň přístupu procedury musí být více omezující než úroveň přístupu vlastnosti. Pokud je například vlastnost deklarovánaFriend, můžete deklarovat proceduruSetPrivate, ale nikoliPublic.Pokud definujete
ReadOnlyvlastnost neboWriteOnlyvlastnost, představuje jedna procedura vlastnosti (GetneboSet, v uvedeném pořadí) všechny vlastnosti. Pro takový postup nelze deklarovat jinou úroveň přístupu, protože by se nastavily dvě úrovně přístupu pro vlastnost.Návratový typ Příkaz
Propertymůže deklarovat datový typ hodnoty, kterou vrátí. Můžete zadat libovolný datový typ nebo název výčtu, struktury, třídy nebo rozhraní.Pokud nezadáte
returntype, vrátí vlastnostObjecthodnotu .Implementace. Pokud tato vlastnost používá
Implementsklíčové slovo, obsahující třída nebo struktura musí mítImplementspříkaz bezprostředně za jehoClassneboStructurepříkazem. PříkazImplementsmusí obsahovat každé rozhraní zadané vimplementslist. Název, kterým rozhraní definujeProperty(vdefinedname) však nemusí být stejný jako název této vlastnosti (vname).
Chování
Vrácení z procedury vlastnosti. Když se procedura
GetvrátíSetdo volajícího kódu, provádění pokračuje příkazem za příkazem, který ho vyvolal.Příkazy
Exit PropertyaReturnpříkazy způsobují okamžitý výstup z procedury vlastnosti. Libovolný početExit Propertypříkazů aReturnpříkazů se může objevit kdekoli v postupu a můžete kombinovatExit PropertyaReturnpříkazy.Vrácená hodnota Pokud chcete vrátit hodnotu z
Getprocedury, můžete ji buď přiřadit k názvu vlastnosti, nebo ji zahrnout doReturnpříkazu. Následující příklad přiřadí vrácenou hodnotu k názvuquoteForTheDayvlastnosti a pak použije příkazExit Propertyk vrácení.Private quoteValue As String = "No quote assigned yet."ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End PropertyPokud použijete
Exit Propertybez přiřazení hodnotyname,Getvrátí procedura výchozí hodnotu pro datový typ vlastnosti.Příkaz
Returnsoučasně přiřadí návratovéGethodnoty procedury a ukončí proceduru. Následující příklad ukazuje toto.Private quoteValue As String = "No quote assigned yet."ReadOnly Property QuoteForTheDay() As String Get Return quoteValue End Get End Property
Příklad
Následující příklad deklaruje vlastnost ve třídě.
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
Parametrizované vlastnosti
Následující příklad ukazuje, jak vytvořit parametrizovanou vlastnost, označovanou také jako indexer, který umožňuje přístup typu pole ke kolekci:
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
Komplexní příklady použití vlastností, včetně automatické implementace, smíšených úrovní přístupu a scénářů ověřování, naleznete v tématu Procedury vlastností.
Viz také
Typy a funkce vlastností
Scénáře pokročilých vlastností
- Postupy: Deklarace a volání výchozí vlastnosti v jazyce Visual Basic
- Postupy: Deklarace vlastnosti se smíšenými úrovněmi přístupu