Delen via


Eigenschapsinstructie

Declareert de naam van een eigenschap en de eigenschapsprocedures die worden gebruikt om de waarde van de eigenschap op te slaan en op te halen.

Syntaxis

[ <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 ]

generator

  • attributelist

    Optioneel. Lijst met kenmerken die van toepassing zijn op deze eigenschap of Get Set procedure. Zie de lijst met kenmerken.

  • Default

    Optioneel. Hiermee geeft u op dat deze eigenschap de standaardeigenschap is voor de klasse of structuur waarop deze is gedefinieerd. Standaardeigenschappen moeten parameters accepteren en kunnen worden ingesteld en opgehaald zonder de naam van de eigenschap op te geven. Als u de eigenschap declareert als Default, kunt u deze niet gebruiken Private voor de eigenschap of voor een van de bijbehorende eigenschappenprocedures.

  • accessmodifier

    Optioneel voor de Property instructie en ten hoogste één van de Get instructies Set . Dit kan een van de volgende zijn:

    Zie Access-niveaus in Visual Basic.

  • propertymodifiers

    Optioneel. Dit kan een van de volgende zijn:

  • Shared

    Optioneel. Zie Gedeeld.

  • Shadows

    Optioneel. Zie schaduwen.

  • ReadOnly

    Optioneel. Zie ReadOnly.

  • WriteOnly

    Optioneel. Zie WriteOnly.

  • Iterator

    Optioneel. Zie Iterator.

  • name

    Vereist. Naam van de eigenschap. Zie Gedeclareerde elementnamen.

  • parameterlist

    Optioneel. Lijst met namen van lokale variabelen die de parameters van deze eigenschap vertegenwoordigen en mogelijke aanvullende parameters van de Set procedure. Zie de lijst met parameters.

  • returntype

    Vereist als Option Strict dat het is On. Gegevenstype van de waarde die door deze eigenschap wordt geretourneerd.

  • Implements

    Optioneel. Geeft aan dat deze eigenschap een of meer eigenschappen implementeert, die elk zijn gedefinieerd in een interface die is geïmplementeerd door de klasse of structuur van deze eigenschap. Zie Implementatie-instructie.

  • implementslist

    Vereist indien Implements opgegeven. Lijst met eigenschappen die worden geïmplementeerd.

    implementedproperty [ , implementedproperty ... ]

    Elk implementedproperty heeft de volgende syntaxis en onderdelen:

    interface.definedname

    Onderdeel Beschrijving
    interface Vereist. Naam van een interface die is geïmplementeerd door deze eigenschap die klasse of structuur bevat.
    definedname Vereist. Naam waarmee de eigenschap is gedefinieerd in interface.
  • Get

    Optioneel. Vereist als de eigenschap is gemarkeerd ReadOnly. Hiermee start u een Get eigenschapsprocedure die wordt gebruikt om de waarde van de eigenschap te retourneren. De Get instructie wordt niet gebruikt met automatisch geïmplementeerde eigenschappen.

  • statements

    Optioneel. Blok instructies dat moet worden uitgevoerd binnen de Get of Set procedure.

  • End Get

    Hiermee wordt de Get eigenschapsprocedure beëindigd.

  • Set

    Optioneel. Vereist als de eigenschap is gemarkeerd WriteOnly. Hiermee start u een Set eigenschapsprocedure die wordt gebruikt om de waarde van de eigenschap op te slaan. De Set instructie wordt niet gebruikt met automatisch geïmplementeerde eigenschappen.

  • End Set

    Hiermee wordt de Set eigenschapsprocedure beëindigd.

  • End Property

    Hiermee wordt de definitie van deze eigenschap beëindigd.

Opmerkingen

De Property instructie introduceert de declaratie van een eigenschap. Een eigenschap kan een Get procedure (alleen-lezen), een Set procedure (alleen schrijven) of beide (lezen/schrijven) hebben. U kunt de Get en Set procedure weglaten wanneer u een automatisch geïmplementeerde eigenschap gebruikt. Zie Eigenschappen automatisch geïmplementeerd voor meer informatie.

U kunt alleen op klasniveau gebruiken Property . Dit betekent dat de declaratiecontext voor een eigenschap een klasse, structuur, module of interface moet zijn en geen bronbestand, naamruimte, procedure of blok kan zijn. Zie Declaratiecontexten en standaardtoegangsniveaus voor meer informatie.

Eigenschappen gebruiken standaard openbare toegang. U kunt het toegangsniveau van een eigenschap aanpassen met een wijzigingsfunctie voor toegang in de Property instructie en u kunt desgewenst een van de eigenschapsprocedures aanpassen aan een meer beperkend toegangsniveau.

Visual Basic geeft een parameter door aan de Set procedure tijdens eigenschapstoewijzingen. Als u geen parameter opgeeft Set, gebruikt de integrated development environment (IDE) een impliciete parameter met de naam value. Deze parameter bevat de waarde die moet worden toegewezen aan de eigenschap. Normaal gesproken slaat u deze waarde op in een lokale privévariabele en retourneert u deze wanneer de Get procedure wordt aangeroepen.

Regels

  • Gemengde toegangsniveaus. Als u een eigenschap lezen/schrijven definieert, kunt u desgewenst een ander toegangsniveau opgeven voor de Get of de Set procedure, maar niet voor beide. Als u dit doet, moet het toegangsniveau van de procedure meer beperkend zijn dan het toegangsniveau van de eigenschap. Als de eigenschap bijvoorbeeld is gedeclareerd Friend, kunt u de Set procedure Privatedeclareren, maar niet Public.

    Als u een ReadOnly of WriteOnly eigenschap definieert, vertegenwoordigt de procedure voor één eigenschap (Get of Setrespectievelijk) alle eigenschappen. U kunt geen ander toegangsniveau declareren voor een dergelijke procedure, omdat hiermee twee toegangsniveaus voor de eigenschap worden ingesteld.

  • Retourtype. De Property instructie kan het gegevenstype declareren van de waarde die wordt geretourneerd. U kunt elk gegevenstype of de naam van een opsomming, structuur, klasse of interface opgeven.

    Als u dit niet opgeeft returntype, wordt de eigenschap geretourneerd Object.

  • Implementatie. Als deze eigenschap het Implements trefwoord gebruikt, moet de bevatde klasse of structuur direct na Class de bijbehorende of Structure instructie een Implements instructie hebben. De Implements instructie moet elke interface bevatten die is opgegeven in implementslist. De naam waarmee een interface de Property (in definedname) definieert, hoeft echter niet hetzelfde te zijn als de naam van deze eigenschap (in name).

Gedrag

  • Terugkeren vanuit een eigenschapsprocedure. Wanneer de Get of Set procedure terugkeert naar de aanroepende code, gaat de uitvoering verder met de instructie na de instructie die deze heeft aangeroepen.

    De Exit Property instructies Return veroorzaken een onmiddellijke uitgang van een eigenschapsprocedure. Elk aantal Exit Property instructies Return en instructies kan overal in de procedure worden weergegeven en u kunt deze combineren Exit Property en Return instructies.

  • Retourwaarde. Als u een waarde wilt retourneren uit een Get procedure, kunt u de waarde toewijzen aan de naam van de eigenschap of deze opnemen in een Return instructie. In het volgende voorbeeld wordt de retourwaarde toegewezen aan de naam quoteForTheDay van de eigenschap en wordt vervolgens de Exit Property instructie gebruikt om te retourneren.

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

    Als u Exit Property zonder een waarde toe te namewijzen, retourneert de Get procedure de standaardwaarde voor het gegevenstype van de eigenschap.

    Met Return de instructie wordt tegelijkertijd de retourwaarde van de Get procedure toegewezen en wordt de procedure afgesloten. In het volgende voorbeeld ziet u dit.

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

Opmerking

In het volgende voorbeeld wordt een eigenschap in een klasse declareren.

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

Zie ook