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.
Met extensiemethoden kunt u methoden toevoegen aan een bestaande klasse. Nadat een extensiemethode is gedeclareerd en binnen het bereik is gebracht, kunt u deze aanroepen als een instantiemethode van het type dat wordt uitgebreid. Zie How to: Write an Extension Method (Een extensiemethode schrijven) voor meer informatie over het schrijven van een extensiemethode.
nl-NL: De volgende instructies verwijzen naar de extensiemethode PrintAndPunctuate, die de tekenreeks instantie weergeeft die het aanroept, gevolgd door de waarde die als tweede parameter wordt verzonden, punc.
Imports System.Runtime.CompilerServices
Module StringExtensions
<Extension()>
Public Sub PrintAndPunctuate(ByVal aString As String,
ByVal punc As String)
Console.WriteLine(aString & punc)
End Sub
End Module
De methode moet binnen het bereik vallen wanneer deze wordt aangeroepen.
Een extensiemethode aanroepen
Declareer een variabele met het gegevenstype van de eerste parameter van de extensiemethode. Hiervoor
PrintAndPunctuatehebt u een String variabele nodig:Dim example = "Ready"Deze variabele roept de extensiemethode aan en de waarde ervan is gebonden aan de eerste parameter.
aStringDe volgende aanroepinstructie zalReady?weergeven.example.PrintAndPunctuate("?")U ziet dat de aanroep van deze extensiemethode lijkt op een aanroep naar een van de String exemplaarmethoden waarvoor één parameter is vereist:
example.EndsWith("dy") example.IndexOf("R")Declareer een andere tekenreeksvariabele en roep de methode opnieuw aan om te zien dat deze werkt met een willekeurige tekenreeks.
Dim example2 = " or not" example2.PrintAndPunctuate("!!!")Het resultaat is deze keer:
or not!!!.
Voorbeeld
De volgende code is een volledig voorbeeld van het maken en gebruiken van een eenvoudige extensiemethode.
Imports System.Runtime.CompilerServices
Imports ConsoleApplication1.StringExtensions
Module Module1
Sub Main()
Dim example = "Hello"
example.PrintAndPunctuate(".")
example.PrintAndPunctuate("!!!!")
Dim example2 = "Goodbye"
example2.PrintAndPunctuate("?")
End Sub
<Extension()>
Public Sub PrintAndPunctuate(ByVal aString As String,
ByVal punc As String)
Console.WriteLine(aString & punc)
End Sub
End Module
' Output:
' Hello.
' Hello!!!!
' Goodbye?