Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med tilläggsmetoder kan du lägga till metoder i en befintlig klass. När en tilläggsmetod har deklarerats och förts in i omfånget kan du anropa den som en instansmetod av den typ som den utökar. Mer information om hur du skriver en tilläggsmetod finns i Så här skriver du en tilläggsmetod.
Följande instruktioner refererar till tilläggsmetoden PrintAndPunctuate, som visar stränginstansen som anropar den, följt av det värde som skickas in för den andra parametern, 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
Metoden måste vara inom räckhåll när den anropas.
Anropa en tilläggsmetod
Deklarera en variabel som har datatypen för den första parametern i tilläggsmetoden. För
PrintAndPunctuatebehöver du en String variabel:Dim example = "Ready"Variabeln anropar tilläggsmetoden och dess värde är bundet till den första parametern,
aString. Följande anrop visarReady?.example.PrintAndPunctuate("?")Observera att anropet till den här tilläggsmetoden ser ut precis som ett anrop till någon av de String instansmetoder som kräver en parameter:
example.EndsWith("dy") example.IndexOf("R")Deklarera en annan strängvariabel och anropa metoden igen för att se att den fungerar med valfri sträng.
Dim example2 = " or not" example2.PrintAndPunctuate("!!!")Resultatet den här gången är:
or not!!!.
Exempel
Följande kod är ett fullständigt exempel på hur du skapar och använder en enkel tilläggsmetod.
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?