Egenskapsutdrag

Deklarerar namnet på en egenskap och de egenskapsprocedurer som används för att lagra och hämta värdet för egenskapen.

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 ]

Delar

  • attributelist

    Valfritt. Lista över attribut som gäller för den här egenskapen eller Get proceduren Set . Se Attributlista.

  • Default

    Valfritt. Anger att den här egenskapen är standardegenskapen för den klass eller struktur som den definieras för. Standardegenskaper måste acceptera parametrar och kan anges och hämtas utan att ange egenskapsnamnet. Om du deklarerar egenskapen som Defaultkan du inte använda Private på egenskapen eller på någon av dess egenskapsprocedurer.

  • accessmodifier

    Valfritt för -instruktionen Property och på högst en av - och Set -uttryckenGet. Kan vara något av följande:

    Se Åtkomstnivåer i Visual Basic.

  • propertymodifiers

    Valfritt. Kan vara något av följande:

  • Shared

    Valfritt. Se Delat.

  • Shadows

    Valfritt. Se Skuggor.

  • ReadOnly

    Valfritt. Se ReadOnly.

  • WriteOnly

    Valfritt. Se WriteOnly.

  • Iterator

    Valfritt. Se Iterator.

  • name

    Obligatoriska. Namnet på egenskapen. Se Deklarerade elementnamn.

  • parameterlist

    Valfritt. Lista över lokala variabelnamn som representerar parametrarna för den här egenskapen och möjliga ytterligare parametrar för proceduren Set . Se Parameterlista.

  • returntype

    Krävs om Option Strict är On. Datatyp för värdet som returneras av den här egenskapen.

  • Implements

    Valfritt. Anger att den här egenskapen implementerar en eller flera egenskaper, var och en definierad i ett gränssnitt som implementeras av den här egenskapens innehållande klass eller struktur. Se Implementeringsinstruktor.

  • implementslist

    Krävs om Implements anges. Lista över egenskaper som implementeras.

    implementedproperty [ , implementedproperty ... ]

    Var implementedproperty och en har följande syntax och delar:

    interface.definedname

    Delvis beskrivning
    interface Obligatoriskt. Namnet på ett gränssnitt som implementeras av den här egenskapen innehåller klass eller struktur.
    definedname Obligatoriska. Namn med vilket egenskapen definieras i interface.
  • Get

    Valfritt. Krävs om egenskapen är markerad ReadOnly. Startar en Get egenskapsprocedur som används för att returnera värdet för egenskapen. -instruktionen Get används inte med automatiskt implementerade egenskaper.

  • statements

    Valfritt. Block med instruktioner som ska köras inom proceduren Get eller Set .

  • End Get

    Avslutar egenskapsproceduren Get .

  • Set

    Valfritt. Krävs om egenskapen är markerad WriteOnly. Startar en Set egenskapsprocedur som används för att lagra värdet för egenskapen. -instruktionen Set används inte med automatiskt implementerade egenskaper.

  • End Set

    Avslutar egenskapsproceduren Set .

  • End Property

    Avslutar definitionen av den här egenskapen.

Kommentarer

-instruktionen Property introducerar deklarationen av en egenskap. En egenskap kan ha en Get procedur (skrivskyddad), en Set procedur (endast skrivning) eller båda (skrivskyddad). Du kan utelämna proceduren Get och Set när du använder en automatiskt implementerad egenskap. Mer information finns i Auto-Implemented Properties (Automatiskt implementerade egenskaper).

Du kan bara använda Property på klassnivå. Det innebär att deklarationskontexten för en egenskap måste vara en klass, struktur, modul eller gränssnitt och får inte vara en källfil, ett namnområde, en procedur eller ett block. Mer information finns i Deklarationskontexter och standardåtkomstnivåer.

Som standard använder egenskaper offentlig åtkomst. Du kan justera en egenskaps åtkomstnivå med en åtkomstmodifierare på -instruktionen Property , och du kan också justera en av dess egenskapsprocedurer till en mer restriktiv åtkomstnivå.

Visual Basic skickar en parameter till proceduren Set under egenskapstilldelningar. Om du inte anger en parameter för Setanvänder den integrerade utvecklingsmiljön (IDE) en implicit parameter med namnet value. Den här parametern innehåller det värde som ska tilldelas egenskapen. Du lagrar vanligtvis det här värdet i en privat lokal variabel och returnerar det när proceduren Get anropas.

Regler

  • Blandade åtkomstnivåer. Om du definierar en skrivskyddad egenskap kan du ange en annan åtkomstnivå för antingen proceduren GetSet eller , men inte båda. Om du gör det måste åtkomstnivån för proceduren vara mer restriktiv än egenskapens åtkomstnivå. Om egenskapen till exempel deklareras Friendkan du deklarera proceduren SetPrivate, men inte Public.

    Om du definierar en ReadOnly eller WriteOnly -egenskap representerar den enskilda egenskapsproceduren (Get respektive Set) hela egenskapen. Du kan inte deklarera en annan åtkomstnivå för en sådan procedur eftersom det skulle ange två åtkomstnivåer för egenskapen.

  • Returtyp. -instruktionen Property kan deklarera datatypen för det värde som returneras. Du kan ange valfri datatyp eller namnet på en uppräkning, struktur, klass eller gränssnitt.

    Om du inte anger returntypereturnerar Objectegenskapen .

  • Genomförandet. Om den här egenskapen använder nyckelordet Implements måste den innehållande klassen eller strukturen ha en Implements instruktion omedelbart efter dess Class eller Structure -instruktionen. Instruktionen Implements måste innehålla varje gränssnitt som anges i implementslist. Det namn med vilket ett gränssnitt definierar Property (i definedname) behöver dock inte vara samma som namnet på den här egenskapen (i name).

Funktionssätt

  • Returnerar från en egenskapsprocedur. När proceduren Get eller Set återgår till den anropande koden fortsätter körningen med -instruktionen efter -instruktionen som anropade den.

    Instruktionen Exit Property och Return orsakar ett omedelbart utträde från en egenskapsprocedur. Valfritt antal Exit Property och Return instruktioner kan visas var som helst i proceduren och du kan blanda Exit Property och Return instruktioner.

  • Returvärde. Om du vill returnera ett värde från en Get procedur kan du antingen tilldela värdet till egenskapsnamnet eller inkludera det i en Return -instruktion. I följande exempel tilldelas returvärdet till egenskapsnamnet quoteForTheDay och använder sedan -instruktionen Exit Property för att returnera.

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

    Om du använder Exit Property utan att tilldela ett värde till nameGet returnerar proceduren standardvärdet för egenskapens datatyp.

    - Return instruktionen tilldelar samtidigt procedurens Get returvärde och avslutar proceduren. Följande exempel visar detta.

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

Exempel

I följande exempel deklareras en egenskap i en klass.

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

Se även