Underprocedurer (Visual Basic)
En Sub
procedur är en serie Visual Basic-instruktioner som omges av instruktionen Sub
och End Sub
. Proceduren Sub
utför en uppgift och returnerar sedan kontrollen till den anropande koden, men den returnerar inte något värde till den anropande koden.
Varje gång proceduren anropas körs dess instruktioner, från och med den första körbara instruktionen efter -instruktionen Sub
och slutar med den första End Sub
, Exit Sub
eller Return
-instruktionen påträffades.
Du kan definiera en Sub
procedur i moduler, klasser och strukturer. Som standard är Public
det , vilket innebär att du kan anropa det var som helst i ditt program som har åtkomst till modulen, klassen eller strukturen där du definierade den. Termmetoden beskriver en eller Function
-Sub
procedur som nås utanför dess definierande modul, klass eller struktur. Mer information finns i Procedurer.
En Sub
procedur kan ta argument, till exempel konstanter, variabler eller uttryck, som skickas till den av den anropande koden.
Deklarationssyntax
Syntaxen för att deklarera en Sub
procedur är följande:
[modifiers] Sub SubName[(parameterList)]
' Statements of the Sub procedure.
End Sub
modifiers
Kan ange åtkomstnivå och information om överlagring, åsidosättande, delning och skuggning. Mer information finns i Underuttryck.
Parameterdeklaration
Du deklarerar varje procedurparameter på samma sätt som du deklarerar en variabel och anger parameternamnet och datatypen. Du kan också ange överföringsmekanismen och om parametern är valfri eller en parametermatris.
Syntaxen för varje parameter i parameterlistan är följande:
[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType
Om parametern är valfri måste du också ange ett standardvärde som en del av deklarationen. Syntaxen för att ange ett standardvärde är följande:
Optional [ByVal | ByRef] parameterName As DataType = defaultValue
Parametrar som lokala variabler
När kontrollen skickas till proceduren behandlas varje parameter som en lokal variabel. Det innebär att dess livslängd är densamma som för förfarandet, och dess omfattning är hela proceduren.
Anropande syntax
Du anropar en Sub
procedur explicit med en fristående anropande instruktion. Du kan inte anropa det med dess namn i ett uttryck. Du måste ange värden för alla argument som inte är valfria och du måste omsluta argumentlistan inom parenteser. Om inga argument anges kan du utelämna parenteserna. Användning av nyckelordet Call
är valfritt men rekommenderas inte.
Syntaxen för ett anrop till en Sub
procedur är följande:
[Call] SubName[(argumentlist)]
Du kan anropa en Sub
metod utanför klassen som definierar den. Först måste du använda nyckelordet New
för att skapa en instans av klassen eller anropa en metod som returnerar en instans av klassen. Mer information finns i Ny operator. Sedan kan du använda följande syntax för att anropa Sub
metoden för instansobjektet:
object.MethodName[(argumentList)]
Bild av deklaration och anrop
Sub
Följande procedur talar om för datoroperatören vilken uppgift programmet ska utföra och visar även en tidsstämpel. I stället för att duplicera den här koden i början av varje uppgift anropar tellOperator
programmet bara från olika platser. Varje anrop skickar en sträng i task
argumentet som identifierar uppgiften som startas.
Sub tellOperator(ByVal task As String)
Dim stamp As Date
stamp = TimeOfDay()
MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub
I följande exempel visas ett typiskt anrop till tellOperator
.
tellOperator("file update")