Funktion

Skapa egen Sub-procedur Clip

En funktion används på samma sätt som en procedur, men med skillnaden att funktionen returnerar ett värde till den anropande proceduren.

Funktioner skrivs allmänt på följande sätt:

Private Function Namn(Argument1 As Typ, Argument2 As Typ) As Typ
Kod
Return värde
End Function

Variablerna som funktionen skall ta emot de skickade argumenten i deklareras inom parenteserna. Själva returvärdets datatyp från funktionen deklareras sist, efter parentesen.

Return är nytt för VB.Net och gör det möjligt att bestämma var i koden ett värde skall returneras till den anropande proceduren. Då lämnas funktionen och satserna efter Return körs inte.

I slutet skriver vi End Function i stället för End Sub.

Antag att vi vill ange två sidor i en rektangel och beräkna arean på den. Värdet skall returneras och skrivas ut i en Label. Först gör vi inmatningskoden i en knapp:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim Sida1, Sida2, Area As Integer
Sida1 = InputBox("Ange ena sidans längd i en rektangel")
Sida2 = InputBox("Ange andra sidans längd")
Area = AreaCalc(Sida1, Sida2)
Label1.Text = Area
End Sub

Två sidors längd anges via Inputbox. Sedan skall variabeln Area få ett värde genom att anropa en funktion med de två sidlängderna som argument. Funktionen returnerar resultatet till variabeln Area. Sist skrivs arean ut i Labeln. Nu gör vi vår funktion:

Function AreaCalc(ByVal tal1 As Integer, ByVal tal2 As Integer) As Integer
Dim A As Integer
A = tal1 * tal2
Return A
End Function

Här deklareras två variabler, tal1 och tal2, som mottagare av de två argumenten. De deklareras automatiskt som ByVal. Läs om ByVal och ByRef i föregående lektion om procedurer.

Efter parentesen anges datatypen på värdet som skall returneras från funktionen. En variabel A deklareras för att rymma beräkningens resultat.

Sist returneras värdet i A till raden som anropade funktionen och Area får sitt värde. Här returneras alltså värdet från funktionen tillbaka till den anropande Sub-proceduren.

Skapa egen Sub-procedur Clip

SupportData.Net
©