Property – příkaz

Deklaruje název vlastnosti a procedury vlastnosti používané k ukládání a načítání hodnoty vlastnosti.

Syntax

[ <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části

  • attributelist

    Nepovinný parametr. Seznam atributů, které se vztahují na tuto vlastnost Get nebo Set proceduru nebo. Viz seznam atributů.

  • Default

    Nepovinný parametr. Určuje, že tato vlastnost je výchozí vlastností třídy nebo struktury, ve 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 , nemůžete použít Private u vlastnosti ani u žádné z jejích procedur vlastností.

  • accessmodifier

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

    Podívejte se na úrovně přístupu v Visual Basic.

  • propertymodifiers

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

  • Shared

    Nepovinný parametr. Viz Shared.

  • Shadows

    Nepovinný parametr. Viz Shadows.

  • ReadOnly

    Nepovinný parametr. Zobrazit jen pro čtení.

  • WriteOnly

    Nepovinný parametr. Viz WriteOnly.

  • Iterator

    Nepovinný parametr. Podívejte se na iterátor.

  • name

    Povinná hodnota. Název vlastnosti. Viz deklarované názvy elementů.

  • parameterlist

    Nepovinný parametr. Seznam názvů místních proměnných, které představují parametry této vlastnosti, a možných dalších parametrů Set procedury. Viz seznam parametrů.

  • returntype

    Požadováno v Option Strict případě On , že je. Datový typ hodnoty vrácené touto vlastností

  • Implements

    Nepovinný parametr. Označuje, že tato vlastnost implementuje jednu nebo více vlastností, každý z nich definovaný v rozhraní implementovaném touto vlastností, která obsahuje třídu nebo strukturu. Viz příkaz Implements.

  • implementslist

    Vyžaduje Implements se, pokud je zadaný. Seznam implementovaných vlastností.

    implementedproperty [ , implementedproperty ... ]

    Každá implementedproperty z nich má následující syntaxi a části:

    interface.definedname

    Část Popis
    interface Povinná hodnota. Název rozhraní implementovaného touto vlastností, která obsahuje třídu nebo strukturu.
    definedname Povinná hodnota. Název, podle kterého je vlastnost definovaná interface .
  • Get

    Nepovinný parametr. Vyžaduje se, pokud je vlastnost označená ReadOnly . Spustí Get proceduru vlastnosti, která se používá k vrácení hodnoty vlastnosti. GetPříkaz se nepoužívá s automaticky implementovanými vlastnostmi.

  • statements

    Nepovinný parametr. Blok příkazů, které mají být spuštěny v rámci Get Set procesu or.

  • End Get

    Ukončí Get proceduru vlastnosti.

  • Set

    Nepovinný parametr. Vyžaduje se, pokud je vlastnost označená WriteOnly . Spustí Set proceduru vlastnosti, která se používá k uložení hodnoty vlastnosti. SetPříkaz se nepoužívá s automaticky implementovanými vlastnostmi.

  • End Set

    Ukončí Set proceduru vlastnosti.

  • End Property

    Ukončí definici této vlastnosti.

Poznámky

PropertyPříkaz zavádí deklaraci vlastnosti. Vlastnost může mít Get proceduru (jen pro čtení), Set proceduru (jen pro zápis) nebo obojí (pro čtení i zápis). Můžete vynechat Get Set proceduru a při použití automaticky implementované vlastnosti. Další informace najdete v tématu věnovaném automaticky implementovaným vlastnostem.

Můžete použít Property pouze na úrovni třídy. To znamená, že kontext deklarace pro vlastnost musí být třída, struktura, modul nebo rozhraní a nemůže se jednat o zdrojový soubor, obor názvů, proceduru nebo blok. Další informace najdete v tématu deklarace kontextů a výchozích úrovní přístupu.

Ve výchozím nastavení vlastnosti používají veřejný přístup. Můžete upravit úroveň přístupu vlastnosti pomocí modifikátoru přístupu u Property příkazu a volitelně můžete upravit jeden z jeho procedur vlastností na více omezující úroveň přístupu.

Visual Basic předá Set proceduře během přiřazení vlastností parametr. Pokud nezadáte parametr pro Set , integrované vývojové prostředí (IDE) používá implicitní parametr s názvem value . Tento parametr obsahuje hodnotu, která má být přiřazena vlastnosti. Tuto hodnotu obvykle ukládáte do privátní místní proměnné a vrátíte ji pokaždé, když Get je procedura volána.

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 proceduru nebo, ale ne obojí. Pokud to uděláte, musí být úroveň přístupu k této proceduře přísnější než úroveň přístupu vlastnosti. Například pokud je vlastnost deklarována Friend , můžete deklarovat Set proceduru Private , ale ne Public .

    Pokud definujete ReadOnly WriteOnly vlastnost nebo, zastupuje procedura s jedinou vlastností ( Get nebo v Set uvedeném pořadí) všechny vlastnosti. Pro takový postup nemůžete deklarovat jinou úroveň přístupu, protože by se pro vlastnost nastavily dvě úrovně přístupu.

  • Návratový typ PropertyPříkaz 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 hodnotu, vlastnost vrátí Object .

  • Provádění. Pokud tato vlastnost používá Implements klíčové slovo, obsahující třídu nebo strukturu musí mít Implements příkaz hned za Class Structure příkazem or. ImplementsPříkaz musí zahrnovat každé rozhraní určené v implementslist . Název, pomocí kterého rozhraní definuje Property (in), ale definedname nemusí být stejný jako název této vlastnosti (v name ).

Chování

  • Návrat z procedury vlastnosti. Když se Get Set procedura nebo vrátí na volající kód, provádění pokračuje příkazem po příkazu, který ho vyvolal.

    Exit PropertyPříkazy a Return způsobují bezprostřední ukončení procedury vlastnosti. Libovolný počet Exit Property příkazů a Return se může objevit kdekoli v proceduře a můžete kombinovat Exit Property a Return příkazy.

  • Návratová hodnota Chcete-li vrátit hodnotu z Get procedury, můžete buď přiřadit hodnotu k názvu vlastnosti nebo ji zahrnout do Return příkazu. Následující příklad přiřadí návratovou hodnotu k názvu vlastnosti quoteForTheDay a poté použije příkaz, Exit Property který se má vrátit.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            QuoteForTheDay = quoteValue
            Exit Property
        End Get
    End Property
    

    Použijete Exit Property -li bez přiřazení hodnoty k name , Get procedura vrátí výchozí hodnotu pro datový typ vlastnosti.

    ReturnPříkaz ve stejnou dobu přiřadí Get návratovou hodnotu 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é