Skapa egen Sub-procedur | |
![]() | ![]() |
![]() | |
En allmän procedur är inte kopplad till ett speciellt objekt utan kan skapas för att utföra allmänna och rutinmässiga bearbetningar. Om man måste använda samma programslinga på många ställen, kan man med fördel göra en allmän procedur i stället för att kopiera och klistra in samma rader på flera ställen. Fördelen är att om man måste ändra något i dessa rader ,behöver man bara göra det på ett ställe i programmet, vilket gör programmet lättare att kontrollera. Lägger man dessa procedurer i en modul kan de också återanvändas i andra projekt, vilket kan spara mycket kodskrivande. En Sub-procedur används främst om inget värde skall returneras ut ur proceduren till fortsatt programkörning. Antag att vi vill beräkna arean av en cirkel där vi anger cirkelns radie i en textbox. Resultatet skall visas i en Label, alltså inte returneras ut ur proceduren. Själva beräkningen kan vi göra i en egen Sub-procedur. Vi kan börja med att skriva vår inmatningsprocedur: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click En variabel dimensioneras där den angivna radien skall läggas. Nästa rad, Cirkelarea(Radie), är ett anrop till den procedur vi skall skriva för areaberäkningen. Det som står i parentesen är ett argument, ett värde, som skickas som indata till vår procedur Cirkelarea. I det här fallet är det värdet i Radie. Sedan skall det värdet ingå i areaberäkningen. Nu skriver vi vår beräkningsprocedur: Private Sub Cirkelarea(ByVal R As Single) I proceduren måste vi deklarera en variabel som tar emot argumentet i anropet. Skriver vi till exempel R As Single och trycker Enter skrivs automatiskt ByVal (by value) framför. Det betyder att värdet är en kopia av det värde som skickades som argument. Värdet på variabeln som skickades som argument ändras alltså inte av det som sker i vår Sub-procedur. Om vi skulle vilja att ursprungsvärdet i variabeln ändrades efter våra operationer i Sub-proceduren, skall vi ange ByRef (by reference) framför vår argumentmottagande variabel. Om inget argument skickas behöver man inte ange något i parentesen. Om vi i stället skriver Sub-proceduren i en modul ändrar vi bara Private Sub till Public Sub. Då kan Sub-proceduren anropas överallt från programmet. Om vi vill spara modulen för att använda den i ett annat program, markeras modulen i Solution Explorer. Klicka därefter i menyn på Arkiv - Save Module1.vb As och ange ett namn. Välj ett namn som beskriver vad proceduren gör. För att lägga in modulen i ett program klickar du i menyn på Project - Add Existing Item. När progarmmet körs skriver användaren in ett värde på radien. Värdet läggs i variabeln Radie som skickas iväg till Sub-proceduren, där det tas emot i variabeln R. Värdet i R används i areaformeln och resultatet hamnar i variabeln Area. Sist skrivs arean ut i en Label. Resultatet returneras alltså inte till ursprungsrutinen Private Sub Button1_Click... | |
![]() | ![]() |
![]() | |
SupportData.Net |