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 Subeller Return -instruktionen påträffades.

Du kan definiera en Sub procedur i moduler, klasser och strukturer. Som standard är Publicdet , 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 -Subprocedur 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")

Se även