[ STATIC ] { PUBLIC | PRIVATE } { PROCEDURE | SUB } Identifier ( [ [ BYREF ] Parameter AS Datatype [ , ... ] ] [ , ] [ OPTIONAL [ BYREF ] Optional Parameter AS Datatype [ , ... ] ] [ , ] [ ... ] ) ... END
This declares a procedure, i.e. a method that returns nothing.
The END keyword indicates the end of the procedure.
[ STATIC ] { PUBLIC | PRIVATE } { FUNCTION | PROCEDURE | SUB } Identifier ( [ [ BYREF ] Parameter AS Datatype [ , ... ] ] [ , ] [ OPTIONAL [ BYREF ] Optional Parameter AS Datatype [ , ... ] ] [ , ] [ ... ] ) AS Datatype ... END
This declares a function, i.e. a method that returns a value.
The END keyword indicates the end of the function.
The datatype of the return value must be specified.
![]() | Of course, these declarations must be written on a unique line. They are separated there so that it is readable. |
Use the RETURN keyword to terminate the function and pass the return value back to the caller.
FUNCTION Calc(fX AS Float) AS Float RETURN Sin(fX) * Exp(- fX) END PUBLIC SUB Button1_Click() PRINT Calc(0), Calc(0.5), Calc(1) END <hr>0 0.290786288213 0.309559875653
The method is accessible everywhere in the class it is declared.
All method arguments are separated by commas.
STATIC PUBLIC PROCEDURE Main() ... PUBLIC FUNCTION Calc(fA AS Float, fB AS Float) AS Float ... PRIVATE SUB DoIt(sCommand AS String, OPTIONAL bSaveIt AS Boolean = TRUE) ... STATIC PRIVATE FUNCTION MyPrintf(sFormat AS String, ...) AS Integer
3.0 | Arguments Passed By ReferenceWhen the BYREF keyword is specified, the argument must be an assignment expression that will be modified by the called function.
SUB ConvPixelToCentimeter(BYREF Value as Float, Dpi AS Integer) Value = Value / Dpi * 2.54 END PUBLIC SUB Main() DIM Size AS Float Size = 256 ConvPixelToCentimeter(BYREF Size, 96) PRINT Size END <hr>6.773333333333 |