Megosztás a következőn keresztül:


Függvényeljárások (Visual Basic)

Az Function eljárás egy Visual Basic utasítássorozat, amelyet a Function és End Function utasítások zárnak le. Az Function eljárás végrehajt egy feladatot, majd visszaadja a vezérlést a hívó kódnak. Amikor visszaadja a vezérlést, egy értéket is visszaad a hívó kódnak.

Minden alkalommal, amikor az eljárást meghívják, az utasítások végrehajtása az első végrehajtható utasítással kezdődik a Function utáni részen, és az elsőként talált End Function, Exit Function, vagy Return utasításnál végződik.

Egy eljárást egy modulban, osztályban vagy struktúrában határozhat meg Function . Public Ez alapértelmezés szerint azt jelenti, hogy az alkalmazás bármely pontjáról meghívhatja, amely hozzáfér ahhoz a modulhoz, osztályhoz vagy struktúrához, amelyben definiálta.

Az Function eljárás argumentumokat, például állandókat, változókat vagy kifejezéseket vehet fel, amelyeket a hívó kód továbbít neki.

Deklaráció szintaxisa

Az eljárás deklarálásának Function szintaxisa a következő:

[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
    [Statements]
End Function

A módosítók megadhatják a hozzáférési szintet és a túlterheléssel, felülbírálással, megosztással és árnyékolással kapcsolatos információkat. További információ: Függvényutasítás.

Minden paramétert ugyanúgy deklarál, mint az aleljárások esetében.

Adattípus

Minden Function eljárás adattípussal rendelkezik, ugyanúgy, mint minden változó. Ezt az adattípust az As utasítás záradéka Function határozza meg, és meghatározza annak az értéknek az adattípusát, amelyet a függvény a hívó kódnak ad vissza. Ezt az alábbi mintadeklarációk szemléltetik.

Function Yesterday() As Date
End Function

Function FindSqrt(radicand As Single) As Single
End Function

További információért lásd az „Alkatrészek” részt a Függvényutasításban.

Értékek visszaadása

Az Function eljárás által a hívó kódnak küldött érték a visszatérési értéke. Az eljárás ezt az értéket kétféleképpen adja vissza:

  • Az utasítással Return adja meg a visszatérési értéket, és azonnal visszaadja a vezérlőt a hívó programnak. Az alábbi példa ezt szemlélteti.

    Function FunctionName [(ParameterList)] As ReturnType
        ' The following statement immediately transfers control back
        ' to the calling code and returns the value of Expression.
        Return Expression
    End Function
    
  • Egy értéket rendel a saját függvény nevéhez az eljárás egy vagy több utasításában. A vezérlés nem tér vissza a hívó programhoz, amíg egy Exit Function vagy egy End Function utasítás nincs végrehajtva. Az alábbi példa ezt szemlélteti.

    Function FunctionName [(ParameterList)] As ReturnType
        ' The following statement does not transfer control back to the calling code.
        FunctionName = Expression
        ' When control returns to the calling code, Expression is the return value.
    End Function
    

A visszatérési érték függvénynévhez való hozzárendelésének előnye, hogy a vezérlés nem tér vissza az eljárásból, amíg nem találkozik egy Exit Function vagy End Function utasítással. Ez lehetővé teszi, hogy előzetes értéket rendeljen hozzá, és szükség esetén később módosítsa.

Az értékek visszaadásáról további információt a Függvényutasítás című témakörben talál. A tömbök visszaadásáról további információt a Tömbök című témakörben talál.

Hívás szintaxisa

Egy eljárást úgy Function hívhat meg, hogy a nevét és argumentumait vagy egy hozzárendelési utasítás jobb oldalán, vagy egy kifejezésben szerepelteti. Meg kell adnia minden olyan argumentum értékét, amely nem kötelező, és zárójelben kell csatolnia az argumentumlistát. Ha nincs megadva argumentum, kihagyhatja a zárójeleket.

Az Function eljárás hívásának szintaxisa a következő.

lvalue=függvénynév[(argumentumlistája)]

If (( függvénynév[(argumentumlista)] / 3) <=kifejezés) Then

Amikor meghív egy Function eljárást, nem kell annak visszatérési értékét használnia. Ha nem, a függvény összes művelete végrehajtva lesz, de a visszatérési érték figyelmen kívül lesz hagyva. MsgBox gyakran így hívják.

Deklaráció és hívás illusztrációja

Az alábbi Function eljárás kiszámítja a jobb oldali háromszög leghosszabb oldalát vagy hipotenuzát a másik két oldal értékeinek figyelembevételével.

Function Hypotenuse(side1 As Double, side2 As Double) As Double
    Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function

Az alábbi példában egy tipikus hívás látható a hypotenuse-re.

Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)

Lásd még