Procedurer i Visual Basic
En procedur är ett block med Visual Basic-instruktioner som omges av en deklarationsinstruktion (Function
, , Sub
Operator
, Get
, Set
) och en matchande End
deklaration. Alla körbara instruktioner i Visual Basic måste finnas inom någon procedur.
Anropa en procedur
Du anropar en procedur från någon annan plats i koden. Detta kallas för ett proceduranrop. När proceduren är klar returneras kontrollen till den kod som anropade den, som kallas anropande kod. Den anropande koden är en -instruktion, eller ett uttryck i en -instruktion, som anger proceduren efter namn och överför kontrollen till den.
Returnera från en procedur
En procedur returnerar kontrollen till den anropande koden när den har körts klart. För att göra detta kan den använda en returuttryck, lämplig exit statement-instruktion för proceduren eller procedurens End <keyword> Statement-instruktion . Kontrollen skickas sedan till den anropande koden efter proceduranropets punkt.
Med en
Return
-instruktion återgår kontrollen omedelbart till den anropande koden. Instruktioner som följer instruktionenReturn
körs inte. Du kan ha fler än enReturn
instruktion i samma procedur.Med en
Exit Sub
-instruktionExit Function
återgår kontrollen omedelbart till den anropande koden. Instruktioner som följer instruktionenExit
körs inte. Du kan ha mer än enExit
-instruktion i samma procedur och du kan blandaReturn
- ochExit
-instruktioner i samma procedur.Om en procedur inte har några
Return
- ellerExit
-instruktioner avslutas den med enEnd Sub
- ellerEnd Function
-End Get
ellerEnd Set
-instruktion efter den sista instruktionen i proceduren. -instruktionenEnd
returnerar kontrollen direkt till den anropande koden. Du kan bara ha enEnd
-instruktion i en procedur.
Parametrar och argument
I de flesta fall måste en procedur fungera på olika data varje gång du anropar den. Du kan skicka den här informationen till proceduren som en del av proceduranropet. Proceduren definierar noll eller flera parametrar, som var och en representerar ett värde som du förväntar dig att skicka till den. Motsvarar varje parameter i procedurdefinitionen är ett argument i proceduranropet. Ett argument representerar det värde som du skickar till motsvarande parameter i ett angivet proceduranrop.
Typer av procedurer
Visual Basic använder flera typer av procedurer:
Underprocedurer utför åtgärder men returnerar inte ett värde till den anropande koden.
Procedurer för händelsehantering är
Sub
procedurer som körs som svar på en händelse som utlöses av en användaråtgärd eller av en förekomst i ett program.Funktionsprocedurer returnerar ett värde till den anropande koden. De kan utföra andra åtgärder innan de returneras.
Vissa funktioner som skrivits i C# returnerar ett referensreturvärde. Funktionsanropare kan ändra returvärdet och den här ändringen återspeglas i tillståndet för det anropade objektet. Från och med Visual Basic 2017 kan Visual Basic kod använda referensreturvärden, även om den inte kan returnera ett värde med referens. Mer information finns i Referensreturvärden.
Egenskapsprocedurer returnerar och tilldelar värden för egenskaper för objekt eller moduler.
Operatorprocedurer definierar beteendet för en standardoperator när en eller båda operanderna är en nydefinierad klass eller struktur.
Allmänna procedurer i Visual Basic definiera en eller flera typparametrar utöver deras normala parametrar, så att den anropande koden kan skicka specifika datatyper varje gång den gör ett anrop.
Procedurer och strukturerad kod
Varje körbar kodrad i programmet måste finnas i någon procedur, till exempel Main
, calculate
eller Button1_Click
. Om du delar upp stora procedurer i mindre, är ditt program mer lättläst.
Procedurer är användbara för att utföra upprepade eller delade uppgifter, till exempel beräkningar som används ofta, text- och kontrollmanipulering och databasåtgärder. Du kan anropa en procedur från många olika platser i koden, så att du kan använda procedurer som byggstenar för ditt program.
Genom att strukturera koden med procedurer får du följande fördelar:
Med procedurer kan du dela upp dina program i diskreta logiska enheter. Du kan felsöka separata enheter enklare än du kan felsöka ett helt program utan procedurer.
När du har utvecklat procedurer för användning i ett program kan du använda dem i andra program, ofta med liten eller ingen ändring. Detta hjälper dig att undvika kodduplicering.