Sdílet prostřednictvím


Set – příkaz (Visual Basic)

Deklaruje proceduru Set vlastnosti použitou k přiřazení hodnoty vlastnosti.

Syntaxe

[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]  
    [ statements ]  
End Set  

Součástky

attributelist
Nepovinné. Viz seznam atributů.

accessmodifier
Volitelné na maximálně jednom z Get příkazů a Set příkazů v této vlastnosti. Může to být jedna z následujících možností:

Viz úrovně Accessu v jazyce Visual Basic.

value
Nepovinné. Parametr obsahující novou hodnotu vlastnosti. Pokud není zadaný (to znamená, že seznam parametrů není k dispozici nebo je prázdný), je definován implicitní parametr s názvem value . Datový typ tohoto implicitního parametru je datový typ vlastnosti, kde je tento Set příkaz deklarován.

datatype
Vyžaduje se, pokud value je přítomna a Option Strict je On. Nelze ji prezentovat, pokud value není zadána. Datový typ parametru value . Zadaný datový typ musí být stejný jako datový typ vlastnosti, kde je tento Set příkaz deklarován.

statements
Nepovinné. Jeden nebo více příkazů, které se spustí při Set volání procedury vlastnosti.

End Set
Povinný: Ukončí definici Set procedury vlastnosti.

Poznámky

Každá vlastnost musí mít proceduru Set vlastnosti, pokud není vlastnost označena ReadOnly. Procedura Set slouží k nastavení hodnoty vlastnosti.

Visual Basic automaticky volá proceduru Set vlastnosti, když příkaz přiřazení poskytuje hodnotu, která má být uložena ve vlastnosti.

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. 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.

Tělo deklarace vlastnosti může obsahovat pouze vlastnosti Get a Set procedury mezi příkazem Property Statement a End Property příkazem. Nemůže uložit nic jiného než tyto postupy. Konkrétně nemůže uložit aktuální hodnotu vlastnosti. Tuto hodnotu je nutné uložit mimo vlastnost, protože pokud ji uložíte do některého z procedur vlastnosti, ostatní procedura vlastnosti k ní nemůže získat přístup. Obvyklým přístupem je uložení hodnoty do privátní proměnné deklarované na stejné úrovni jako vlastnost. Musíte definovat proceduru Set uvnitř vlastnosti, na kterou se vztahuje.

Výchozí Set hodnota procedury je úroveň přístupu jeho obsahující vlastnosti, pokud v Set příkazu nepoužíváteaccessmodifier.

Pravidla

  • Smíšené úrovně přístupu. Pokud definujete vlastnost pro čtení i zápis, můžete volitelně zadat jinou úroveň přístupu pro GetSet 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ána Friend, můžete deklarovat proceduru SetPrivate, ale nikoli Public.

    Pokud definujete WriteOnly vlastnost, procedura Set představuje celou vlastnost. Nelze deklarovat jinou úroveň přístupu pro Set, protože by to nastavilo dvě úrovně přístupu pro vlastnost.

Chování

  • Vrácení z procedury vlastnosti. Když se procedura Set vrátí do volajícího kódu, provádění pokračuje podle příkazu, který poskytl hodnotu, která má být uložena.

    Set procedury vlastnosti mohou vrátit pomocí příkazu Return nebo Exit Příkaz.

    Příkazy Exit Property a Return příkazy způsobují okamžitý výstup z procedury vlastnosti. Libovolný počet Exit Property příkazů a Return příkazů se může objevit kdekoli v postupu a můžete kombinovat Exit Property a Return příkazy.

Příklad

Následující příklad používá Set příkaz k nastavení hodnoty vlastnosti.

Class propClass
    Private propVal As Integer
    Property Prop1() As Integer
        Get
            Return propVal
        End Get
        Set(ByVal value As Integer)
            propVal = value
        End Set
    End Property
End Class

Viz také