Anvisningar: Definiera flera versioner av en procedur (Visual Basic)
Du kan definiera en procedur i flera versioner genom att överbelasta den med samma namn men en annan parameterlista för varje version. Syftet med överlagring är att definiera flera nära relaterade versioner av en procedur utan att behöva särskilja dem efter namn.
Mer information finns i Överlagring av procedurer.
Definiera flera versioner av en procedur
Skriv en
Sub
- ellerFunction
-deklarationssats för varje version av proceduren som du vill definiera. Använd samma procedurnamn i varje deklaration.Före nyckelordet
Sub
ellerFunction
i varje deklaration med nyckelordet Overloads . Du kan också utelämnaOverloads
i deklarationerna, men om du inkluderar den i någon av deklarationerna måste du inkludera den i varje deklaration.Efter varje deklarationssats skriver du procedurkod för att hantera det specifika fallet där den anropande koden tillhandahåller argument som matchar den versionens parameterlista. Du behöver inte testa för vilka parametrar anropande koden har angett. Visual Basic skickar kontrollen till den matchande versionen av proceduren.
Avsluta varje version av proceduren med instruktionen
End Sub
ellerEnd Function
efter behov.
Exempel
I följande exempel definieras en Sub
procedur för att bokföra en transaktion mot en kunds saldo. Det använder nyckelordet Overloads
för att definiera två versioner av proceduren, en som accepterar kunden med namn och den andra efter kontonummer.
Overloads Sub post(ByVal custName As String, ByVal amount As Single)
' Insert code to access customer record by customer name.
End Sub
Overloads Sub post(ByVal custAcct As Integer, ByVal amount As Single)
' Insert code to access customer record by account number.
End Sub
Den anropande koden kan hämta kundidentifieringen som antingen en String
eller en Integer
, och sedan använda samma anropande instruktion i båda fallen.
Information om hur du anropar dessa versioner av proceduren post
finns i Så här anropar du en överbelastad procedur.
Kompilera koden
Kontrollera att var och en av dina överlagrade versioner har samma procedurnamn men en annan parameterlista.