Suche…


Einführung in die Prozeduren

Ein Sub ist eine Prozedur, die eine bestimmte Aufgabe ausführt, aber keinen bestimmten Wert zurückgibt.

Sub ProcedureName ([argument_list])
    [statements]
End Sub

Wenn kein Zugriffsmodifizierer angegeben wird, ist standardmäßig eine Prozedur Public .

Eine Function ist eine Prozedur, die Daten erhält und einen Wert zurückgibt, im Idealfall ohne globale oder Moduleffekte.

Function ProcedureName ([argument_list]) [As ReturnType]
    [statements]
End Function

Eine Property ist eine Prozedur, die Moduldaten einkapselt . Eine Eigenschaft kann bis zu 3 Zugriffsmethoden haben: Get , um einen Wert oder eine Objektreferenz zurückzugeben, Let einen Wert zuweisen und / oder Set , um eine Objektreferenz zuzuweisen.

Property Get|Let|Set PropertyName([argument_list]) [As ReturnType]
    [statements]
End Property

Eigenschaften werden normalerweise in Klassenmodulen verwendet (obwohl sie auch in Standardmodulen zulässig sind), wodurch der Zugriff auf Daten verfügbar gemacht wird, auf die der aufrufende Code sonst nicht zugreifen kann. Eine Eigenschaft, die nur einen Get Accessor verfügbar macht, ist "schreibgeschützt". Eine Eigenschaft, die nur einen Let und / oder Set freigeben würde, ist "Nur-Schreiben". Nur Schreiben Eigenschaften sind keine gute Programmierpraxis - wenn der Client - Code einen Wert schreiben kann, sollte es in der Lage sein , es zu lesen zurück. Erwägen Sie, eine Sub Prozedur zu implementieren, anstatt eine schreibgeschützte Eigenschaft zu erstellen.

Rückgabe eines Wertes

Eine Function oder Property Get Prozedur kann (und sollte!) Einen Wert an ihren Aufrufer zurückgeben. Dies geschieht durch Zuweisung der Kennung der Prozedur:

Property Get Foo() As Integer
    Foo = 42
End Property

Funktion mit Beispielen

Wie bereits erwähnt, handelt es sich bei Funktionen um kleinere Prozeduren, die kleine Codeteile enthalten, die sich innerhalb einer Prozedur wiederholen können.

Funktionen werden verwendet, um Redundanz im Code zu reduzieren.

Ähnlich wie bei einer Prozedur kann eine Funktion mit oder ohne Argumentliste deklariert werden.

Funktion wird als Rückgabetyp deklariert, da alle Funktionen einen Wert zurückgeben. Der Name und die Rückgabevariable einer Funktion sind gleich.

  1. Funktion mit Parameter:

     Function check_even(i as integer) as boolean
     if (i mod  2) = 0 then
     check_even = True
     else
     check_even=False
     end if
     end Function
    
  2. Funktion ohne Parameter:

     Function greet() as String
     greet= "Hello Coder!"
     end Function
    

Die Funktion kann auf verschiedene Arten innerhalb einer Funktion aufgerufen werden. Da eine mit einem Rückgabetyp deklarierte Funktion grundsätzlich eine Variable ist. es wird ähnlich wie eine Variable verwendet.

Funktionale Anrufe:

    call greet() 'Similar to a Procedural call just allows the Procedure to use the
                 'variable greet 
    string_1=greet() 'The Return value of the function is used for variable
                     'assignment

Weiterhin kann die Funktion auch als Bedingung für if- und andere Bedingungsanweisungen verwendet werden.

      for i = 1 to 10
      if check_even(i) then
      msgbox i & " is Even"
      else
      msgbox i & " is Odd"
      end if
      next i

Weitere Funktionen können für ihre Argumente Modifikatoren wie By ref und By val haben.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow