Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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
attributelistOptioneel. Lijst met kenmerken die van toepassing zijn op deze eigenschap of
GetSetprocedure. Zie de lijst met kenmerken.DefaultOptioneel. 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 gebruikenPrivatevoor de eigenschap of voor een van de bijbehorende eigenschappenprocedures. Zie Instructies voor voorbeelden en gedetailleerde richtlijnen : Een standaardeigenschap declareren en aanroepen in Visual Basic.accessmodifierOptioneel voor de
Propertyinstructie en ten hoogste één van deGetinstructiesSet. Dit kan een van de volgende zijn:propertymodifiersOptioneel. Dit kan een van de volgende zijn:
MustOverride OverridesNotOverridable Overrides
SharedOptioneel. Zie Gedeeld.
ShadowsOptioneel. Zie schaduwen.
ReadOnlyOptioneel. Zie ReadOnly.
WriteOnlyOptioneel. Zie WriteOnly.
IteratorOptioneel. Zie Iterator.
nameVereist. Naam van de eigenschap. Zie Gedeclareerde elementnamen.
parameterlistOptioneel. Lijst met namen van lokale variabelen die de parameters van deze eigenschap vertegenwoordigen en mogelijke aanvullende parameters van de
Setprocedure. Geparameteriseerde eigenschappen worden vaak gebruikt om indexeerfuncties of standaardeigenschappen te maken die verzamelingachtige toegang toestaan. Zie de lijst met parameters en procedures: een standaardeigenschap declareren en aanroepen in Visual Basic.returntypeVereist als
Option Strictdat het isOn. Gegevenstype van de waarde die door deze eigenschap wordt geretourneerd.ImplementsOptioneel. 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.
implementslistVereist indien
Implementsopgegeven. Lijst met eigenschappen die worden geïmplementeerd.implementedproperty [ , implementedproperty ... ]Elk
implementedpropertyheeft de volgende syntaxis en onderdelen:interface.definednameOnderdeel Beschrijving interfaceVereist. Naam van een interface die is geïmplementeerd door deze eigenschap die klasse of structuur bevat. definednameVereist. Naam waarmee de eigenschap is gedefinieerd in interface.GetOptioneel. Vereist als de eigenschap is gemarkeerd
ReadOnly. Hiermee start u eenGeteigenschapsprocedure die wordt gebruikt om de waarde van de eigenschap te retourneren. DeGetinstructie wordt niet gebruikt met automatisch geïmplementeerde eigenschappen.statementsOptioneel. Blok instructies dat moet worden uitgevoerd binnen de
GetofSetprocedure.End GetHiermee wordt de
Geteigenschapsprocedure beëindigd.SetOptioneel. Vereist als de eigenschap is gemarkeerd
WriteOnly. Hiermee start u eenSeteigenschapsprocedure die wordt gebruikt om de waarde van de eigenschap op te slaan. DeSetinstructie wordt niet gebruikt met automatisch geïmplementeerde eigenschappen.End SetHiermee wordt de
Seteigenschapsprocedure beëindigd.End PropertyHiermee 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. Zie Een eigenschap met gemengde toegangsniveaus declareren met gemengde toegangsniveaus voor gedetailleerde voorbeelden van gemengde toegangsniveaus.
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
Getof deSetprocedure, 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 deSetprocedurePrivatedeclareren, maar nietPublic.Als u een
ReadOnlyofWriteOnlyeigenschap definieert, vertegenwoordigt de procedure voor één eigenschap (GetofSetrespectievelijk) alle eigenschappen. U kunt geen ander toegangsniveau declareren voor een dergelijke procedure, omdat hiermee twee toegangsniveaus voor de eigenschap worden ingesteld.Retourtype. De
Propertyinstructie 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
Implementstrefwoord gebruikt, moet de bevatde klasse of structuur direct naImplementsde bijbehorende ofClassinstructie eenStructureinstructie hebben. DeImplementsinstructie 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
GetofSetprocedure terugkeert naar de aanroepende code, gaat de uitvoering verder met de instructie na de instructie die deze heeft aangeroepen.De
Exit PropertyinstructiesReturnveroorzaken een onmiddellijke uitgang van een eigenschapsprocedure. Elk aantalExit PropertyinstructiesReturnen instructies kan overal in de procedure worden weergegeven en u kunt deze combinerenExit PropertyenReturninstructies.Retourwaarde. Als u een waarde wilt retourneren uit een
Getprocedure, kunt u de waarde toewijzen aan de naam van de eigenschap of deze opnemen in eenReturninstructie. In het volgende voorbeeld wordt de retourwaarde toegewezen aan de naamquoteForTheDayvan de eigenschap en wordt vervolgens deExit Propertyinstructie 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 PropertyAls u
Exit Propertyzonder een waarde toe tenamewijzen, retourneert deGetprocedure de standaardwaarde voor het gegevenstype van de eigenschap.Met
Returnde instructie wordt tegelijkertijd de retourwaarde van deGetprocedure 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
Geparameteriseerde eigenschappen
In het volgende voorbeeld ziet u hoe u een geparameteriseerde eigenschap maakt, ook wel een indexeerfunctie genoemd, waarmee matrixachtige toegang tot een verzameling mogelijk is:
Class SampleCollection
' Define a local collection to store strings.
Private items As New List(Of String)
' Define a parameterized property (indexer) for the collection.
Default Public Property Item(ByVal index As Integer) As String
Get
' Return the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
Return items(index)
Else
Return Nothing
End If
End Get
Set(ByVal value As String)
' Set the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
items(index) = value
ElseIf index = items.Count Then
' Allow adding new items at the end.
items.Add(value)
End If
End Set
End Property
' Add a Count property for convenience.
Public ReadOnly Property Count As Integer
Get
Return items.Count
End Get
End Property
' Add method to add items.
Public Sub Add(ByVal item As String)
items.Add(item)
End Sub
End Class
Zie Eigenschappenprocedures voor uitgebreide voorbeelden van het gebruik van eigenschappen, waaronder automatische implementatie, gemengde toegangsniveaus en validatiescenario's.
Zie ook
Eigenschapstypen en -functies
Geavanceerde eigenschapsscenario's
- Procedure: Een standaardeigenschap declareren en aanroepen in Visual Basic
- Procedure: Een eigenschap met gemengde toegangsniveaus declareren