Declaración de Métodos
-
Functions : retorna siempre un valor
-
Procedures : no retorna valores.
Procedimientos
[ FAST ] [ STATIC ] { PUBLIC | PRIVATE } { PROCEDURE | SUB }
Identifier
(
[ [ BYREF ] Parameter AS Datatype [ , ... ] ] [ , ]
[ OPTIONAL [ BYREF ] Optional Parameter AS Datatype [ , ... ] ] [ , ] [ ... ]
)
...
END
Declara un procedimiento, es decir, un método que no devuelve ningún valor.
La palabra clave
END indica el final del procedimiento.
Funciones
[ FAST ] [ STATIC ] { PUBLIC | PRIVATE } { FUNCTION | PROCEDURE | SUB }
Identifier
(
[ [ BYREF ] Parameter AS Datatype [ , ... ] ] [ , ]
[ OPTIONAL [ BYREF ] Optional Parameter AS Datatype [ , ... ] ] [ , ] [ ... ]
)
AS Datatype
...
END
Declara una función, es decir, un método que devuelve un valor.
La palabra clave
END indica el final de la función.
El tipo de dato del valor a retornar debe ser especificado.
Por supuesto, la declaración se tiene que escribir en una sóla línea. Aquí está separada para que sea legible.
Use la palabra clave
RETURN para detener la ejecución de la función y devolver el valor especificado.
Examples
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
0 0.290786288213 0.309559875653
Acceso a los Métodos
El método es accesible en todos los puntos de la clase donde es declarada.
-
Si se indica la palabra clave
PUBLIC
, también será accesible desde otras clases que tengan una referencia al objeto de la clase.
-
Si se indica la palabra clave
STATIC
, el método sólo puede acceder a las variables estáticas de la clase.
Parámetros de los Métodos
Todos los parámetros de los método se separan con comas.
-
Si se indica la palabra clave
OPTIONAL
, todos los parámetros tras la palabra clave son opcionales. Puede especificar un valor por defecto para los parámetros opcionales empleando el signo "igual".
-
Si la lista de parámetros termina con
...
, el método puede recibir parámetros extra. Cada argumento adicional pasado al método es accesible a través de la clase Param.
Examples
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
Parámetros pasados por referencia
-
Si se indica la palabra clave
BYREF
, el parámetro debe ser que sera modificada por la función llamada.
Examples
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
Si no se especifica
BYREF al ejecutar la función, entonces el valor del parámetro es pasado y no una referencia, incluso si
BYREF fue especificado al declarar el método.
En otras palabras: el metodo ejecutado
permite que un argumento sea pasado por referencia, mientras que quien lo ejecuta lo
decide.
Compilación Just In-Time
Desde 3.2
Véase también