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 GetSet 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žít Private pro vlastnost ani pro některou z jejích procedur vlastností.

  • accessmodifier

    Volitelné pro Property příkaz a maximálně jeden z Get příkazů a Set příkazů. Může to být jedna z následujících možností:

    Viz úrovně Accessu v jazyce Visual Basic.

  • propertymodifiers

    Nepovinné. Může to být jedna z následujících možností:

  • 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 je On. 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í proceduru Get vlastnosti, která se používá k vrácení hodnoty vlastnosti. Příkaz Get 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í proceduru Set vlastnosti, která slouží k uložení hodnoty vlastnosti. Příkaz Set 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 vynechat Set . 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 , 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 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 ReadOnly vlastnost nebo WriteOnly vlastnost, představuje jedna procedura vlastnosti (Get nebo Set, 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í vlastnost Objecthodnotu .

  • Provádění. Pokud tato vlastnost používá Implements klíčové slovo, obsahující třída nebo struktura musí mít Implements příkaz bezprostředně za jeho Class nebo Structure příkazem. Příkaz Implements musí obsahovat každé rozhraní zadané v implementslist. Název, kterým rozhraní definuje Property (v definedname) však nemusí být stejný jako název této vlastnosti (v name).

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

  • 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 do Return příkazu. Následující příklad přiřadí vrácenou hodnotu k názvu quoteForTheDay vlastnosti a pak použije příkaz Exit 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í hodnoty name, 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

Viz také