Declaración de Métodos
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.
Ejemplo
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 tenfan 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étodos 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.
Ejemplo
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.
Ejemplo
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
6.773333333333
 |
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 la versión 3.2