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 gebruikenPrivate
voor de eigenschap of voor een van de bijbehorende eigenschappenprocedures.accessmodifier
Optioneel voor de
Property
instructie en ten hoogste één van deGet
instructiesSet
. Dit kan een van de volgende zijn:propertymodifiers
Optioneel. Dit kan een van de volgende zijn:
MustOverride Overrides
NotOverridable Overrides
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 isOn
. 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 eenGet
eigenschapsprocedure die wordt gebruikt om de waarde van de eigenschap te retourneren. DeGet
instructie wordt niet gebruikt met automatisch geïmplementeerde eigenschappen.statements
Optioneel. Blok instructies dat moet worden uitgevoerd binnen de
Get
ofSet
procedure.End Get
Hiermee wordt de
Get
eigenschapsprocedure beëindigd.Set
Optioneel. Vereist als de eigenschap is gemarkeerd
WriteOnly
. Hiermee start u eenSet
eigenschapsprocedure die wordt gebruikt om de waarde van de eigenschap op te slaan. DeSet
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 deSet
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 gedeclareerdFriend
, kunt u deSet
procedurePrivate
declareren, maar nietPublic
.Als u een
ReadOnly
ofWriteOnly
eigenschap definieert, vertegenwoordigt de procedure voor één eigenschap (Get
ofSet
respectievelijk) 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 geretourneerdObject
.Implementatie. Als deze eigenschap het
Implements
trefwoord gebruikt, moet de bevatde klasse of structuur direct naClass
de bijbehorende ofStructure
instructie eenImplements
instructie hebben. DeImplements
instructie moet elke interface bevatten die is opgegeven inimplementslist
. De naam waarmee een interface deProperty
(indefinedname
) definieert, hoeft echter niet hetzelfde te zijn als de naam van deze eigenschap (inname
).
Gedrag
Terugkeren vanuit een eigenschapsprocedure. Wanneer de
Get
ofSet
procedure terugkeert naar de aanroepende code, gaat de uitvoering verder met de instructie na de instructie die deze heeft aangeroepen.De
Exit Property
instructiesReturn
veroorzaken een onmiddellijke uitgang van een eigenschapsprocedure. Elk aantalExit Property
instructiesReturn
en instructies kan overal in de procedure worden weergegeven en u kunt deze combinerenExit Property
enReturn
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 eenReturn
instructie. In het volgende voorbeeld wordt de retourwaarde toegewezen aan de naamquoteForTheDay
van de eigenschap en wordt vervolgens deExit 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 tename
wijzen, retourneert deGet
procedure de standaardwaarde voor het gegevenstype van de eigenschap.Met
Return
de instructie wordt tegelijkertijd de retourwaarde van deGet
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