Zoeken…


Inleiding tot procedures

Een Sub is een procedure die een specifieke taak uitvoert maar geen specifieke waarde retourneert.

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

Als er geen toegangsmodificator is opgegeven, is een procedure standaard Public .

Een Function is een procedure die gegevens krijgt en een waarde retourneert, idealiter zonder globale bijwerkingen of module-scope bijwerkingen.

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

Een Property is een procedure die modulegegevens inkapselt . Een eigenschap kan hebben 3 accessors: Get een waarde of referentie terugkeren, Let op een waarde toewijst en / of Set een referentieobject toe.

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

Eigenschappen worden meestal gebruikt in klassemodules (hoewel ze ook zijn toegestaan in standaardmodules), waardoor de accessor wordt blootgesteld aan gegevens die anders niet toegankelijk zijn voor de oproepcode. Een eigenschap die alleen een Get accessor blootstelt, is "alleen-lezen"; een eigenschap die alleen een Let en / of Set accessor zou blootleggen, is "alleen-schrijven". Alleen-schrijven eigenschappen worden niet als een goede programmeerpraktijk beschouwd - als de clientcode een waarde kan schrijven , moet deze deze kunnen lezen . Overweeg een Sub procedure te implementeren in plaats van een eigenschap alleen-schrijven te maken.

Retourneren van een waarde

Een Function of Property Get kan (en moet!) Een waarde retourneren aan de beller. Dit wordt gedaan door de identifier van de procedure toe te wijzen:

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

Functie met voorbeelden

Zoals hierboven vermeld, zijn functies kleinere procedures die kleine stukjes code bevatten die zich binnen een procedure kunnen herhalen.

Functies worden gebruikt om redundantie in code te verminderen.

Net als bij een procedure kan een functie worden gedeclareerd met of zonder een lijst met argumenten.

Functie wordt gedeclareerd als een retourtype, omdat alle functies een waarde retourneren. De naam en de retourvariabele van een functie zijn hetzelfde.

  1. Functie met 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. Functie zonder parameter:

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

De functie kan op verschillende manieren in een functie worden opgeroepen. Omdat een functie gedeclareerd met een retourtype in principe een variabele is. het wordt gebruikt vergelijkbaar met een variabele.

Functionele oproepen:

    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

Verder kan de functie ook worden gebruikt als voorwaarden voor if en andere voorwaardelijke verklaringen.

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

Verder kunnen Functies modificaties hebben zoals By ref en By val voor hun argumenten.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow