Property – příkaz
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
attributelist
Nepovinné. Seznam atributů, které se vztahují na tuto vlastnost nebo
Get
Set
proceduru Viz seznam atributů.Default
Nepovinné. 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žítPrivate
pro vlastnost ani pro některou z jejích procedur vlastností.accessmodifier
Volitelné pro
Property
příkaz a maximálně jeden zGet
příkazů aSet
příkazů. Může to být jedna z následujících možností:propertymodifiers
Nepovinné. Může to být jedna z následujících možností:
MustOverride Overrides
NotOverridable Overrides
Shared
Nepovinné. Viz Sdílené.
Shadows
Nepovinné. Podívejte se na stíny.
ReadOnly
Nepovinné. Viz ReadOnly.
WriteOnly
Nepovinné. Viz WriteOnly.
Iterator
Nepovinné. Viz Iterátor.
name
Povinný: Název vlastnosti. Viz Deklarované názvy elementů.
parameterlist
Nepovinné. Seznam názvů místních proměnných představujících parametry této vlastnosti a možné další parametry
Set
procedury. Viz seznam parametrů.returntype
Vyžaduje se, pokud
Option Strict
jeOn
. Datový typ hodnoty vrácené touto vlastností.Implements
Nepovinné. 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.
implementslist
Požadováno, pokud
Implements
je zadáno. Seznam implementovaných vlastnostíimplementedproperty [ , implementedproperty ... ]
Každá z nich
implementedproperty
má následující syntaxi a části:interface.definedname
Část Popis interface
Požadováno. Název rozhraní implementovaného touto vlastností obsahující třídu nebo strukturu. definedname
Povinný: Název, podle kterého je vlastnost definována v interface
.Get
Nepovinné. Požadováno, pokud je vlastnost označena
ReadOnly
. Spustí proceduruGet
vlastnosti, která se používá k vrácení hodnoty vlastnosti. PříkazGet
se nepoužívá s automaticky implementovanými vlastnostmi.statements
Nepovinné. Blok příkazů, které se mají spustit v rámci
Get
procedury.Set
End Get
Ukončí proceduru
Get
vlastnosti.Set
Nepovinné. Požadováno, pokud je vlastnost označena
WriteOnly
. Spustí proceduruSet
vlastnosti, která slouží k uložení hodnoty vlastnosti. PříkazSet
se nepoužívá s automaticky implementovanými vlastnostmi.End Set
Ukončí proceduru
Set
vlastnosti.End Property
Ukončí 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 Get
Set
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.
Visual Basic předá procedurě Set
parametr během přiřazení vlastností. Pokud nezadáte parametr , Set
integrované 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
Get
Set
postup, 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 proceduruSet
Private
, ale nikoliPublic
.Pokud definujete
ReadOnly
vlastnost neboWriteOnly
vlastnost, představuje jedna procedura vlastnosti (Get
neboSet
, 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
Property
můž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í vlastnostObject
hodnotu .Implementace. Pokud tato vlastnost používá
Implements
klíčové slovo, obsahující třída nebo struktura musí mítImplements
příkaz bezprostředně za jehoClass
neboStructure
příkazem. PříkazImplements
musí 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
Get
vrátíSet
do volajícího kódu, provádění pokračuje příkazem za příkazem, který ho vyvolal.Příkazy
Exit Property
aReturn
příkazy způsobují okamžitý výstup z procedury vlastnosti. Libovolný početExit Property
příkazů aReturn
příkazů se může objevit kdekoli v postupu a můžete kombinovatExit Property
aReturn
příkazy.Vrácená hodnota Pokud chcete vrátit hodnotu z
Get
procedury, můžete ji buď přiřadit k názvu vlastnosti, nebo ji zahrnout doReturn
příkazu. Následující příklad přiřadí vrácenou hodnotu k názvuquoteForTheDay
vlastnosti a pak použije příkazExit Property
k vrácení.Private quoteValue As String = "No quote assigned yet."
ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End Property
Pokud použijete
Exit Property
bez přiřazení hodnotyname
,Get
vrátí procedura výchozí hodnotu pro datový typ vlastnosti.Příkaz
Return
současně přiřadí návratovéGet
hodnoty 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