Procedure: Een standaardeigenschap declareren en aanroepen in Visual Basic
Een standaardeigenschap is een klasse- of structuureigenschap waartoe uw code toegang heeft zonder deze op te geven. Bij het aanroepen van codenamen van een klasse of structuur, maar niet van een eigenschap, en de context toegang tot een eigenschap toestaat, wordt de toegang tot de standaardeigenschap van die klasse of structuur omgezet als deze bestaat.
Een klasse of structuur kan maximaal één standaardeigenschap hebben. U kunt echter een standaardeigenschap overbelasten en meer dan één versie ervan hebben.
Zie Standaard voor meer informatie.
Een standaardeigenschap declareren
Declareer de eigenschap op de normale manier. Geef het
Shared
ofPrivate
trefwoord niet op.Neem het
Default
trefwoord op in de eigenschapsdeclaratie.Geef ten minste één parameter op voor de eigenschap. U kunt geen standaardeigenschap definiëren die niet ten minste één argument in beslag neemt.
Default Property myProperty(ByVal index As Integer) As String
Een standaardeigenschap aanroepen
Declareer een variabele van het klasse- of structuurtype.
Dim x As New class1(3)
Gebruik de naam van de variabele alleen in een expressie waarin u normaal gesproken de naam van de eigenschap opneemt.
MsgBox(x)
Volg de naam van de variabele met een argumentenlijst tussen haakjes. Een standaardeigenschap moet ten minste één argument hebben.
MsgBox(x(1))
Als u de standaardeigenschapswaarde wilt ophalen, gebruikt u de naam van de variabele, met een lijst met argumenten, in een expressie of na het gelijkteken (
=
) in een toewijzingsinstructie.MsgBox(x(1) & x(2) & x(3))
Als u de standaardeigenschapswaarde wilt instellen, gebruikt u de naam van de variabele, met een lijst met argumenten, aan de linkerkant van een toewijzingsinstructie.
x(1) = "Hello" x(2) = " " x(3) = "World"
U kunt altijd de standaardeigenschapsnaam opgeven samen met de naam van de variabele, net zoals u dat zou doen voor toegang tot een andere eigenschap.
x.myProperty(1) = "Hello" x.myProperty(2) = " " x.myProperty(3) = "World"
Voorbeeld 1
In het volgende voorbeeld wordt een standaardeigenschap voor een klasse declareren.
Public Class class1
Private myStrings() As String
Sub New(ByVal size As Integer)
ReDim myStrings(size)
End Sub
Default Property myProperty(ByVal index As Integer) As String
Get
' The Get property procedure is called when the value
' of the property is retrieved.
Return myStrings(index)
End Get
Set(ByVal Value As String)
' The Set property procedure is called when the value
' of the property is modified.
' The value to be assigned is passed in the argument
' to Set.
myStrings(index) = Value
End Set
End Property
End Class
Voorbeeld 2
In het volgende voorbeeld ziet u hoe u de standaardeigenschap myProperty
voor klasse class1
aanroept. In de drie toewijzingsinstructies worden waarden opgeslagen in myProperty
en de MsgBox aanroep worden de waarden gelezen.
Sub Test()
Dim x As New class1(3)
x(1) = "Hello"
x(2) = " "
x(3) = "World"
MsgBox(x(1) & x(2) & x(3))
End Sub
Het meest voorkomende gebruik van een standaardeigenschap is de Item[] eigenschap in verschillende verzamelingsklassen.
Robuuste programmering
Standaardeigenschappen kunnen leiden tot een kleine vermindering van broncodetekens, maar ze kunnen uw code moeilijker leesbaar maken. Als de aanroepende code niet bekend is met uw klasse of structuur, kan het niet zeker zijn of deze verwijzing toegang heeft tot de klasse of structuur zelf, of een standaardeigenschap. Dit kan leiden tot compilerfouten of subtiele runtimelogicafouten.
U kunt de kans op standaardeigenschapsfouten enigszins verminderen door altijd de instructie Option Strict te gebruiken om de controle van compilertypen in te stellen op On
.
Als u van plan bent een vooraf gedefinieerde klasse of structuur in uw code te gebruiken, moet u bepalen of deze een standaardeigenschap heeft en zo ja, wat de naam ervan is.
Vanwege deze nadelen kunt u overwegen geen standaardeigenschappen te definiëren. Voor de leesbaarheid van code moet u ook overwegen altijd expliciet naar alle eigenschappen te verwijzen, zelfs standaardeigenschappen.
Zie ook
- Eigenschappenprocedures
- Procedureparameters en argumenten
- Eigenschapsinstructie
- Standaard
- Verschillen tussen eigenschappen en variabelen in Visual Basic
- Procedure: Een eigenschap maken
- Procedure: Een eigenschap met gemengde toegangsniveaus declareren
- Procedure: Een eigenschapsprocedure aanroepen
- Procedure: Een waarde in een eigenschap plaatsen
- Procedure: Een waarde ophalen uit een eigenschap