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
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 3.2

Véase también