Principal > cat > methoddecl 
 en fr de it nl pl pt pt_BR mk sq ca hu cs tr ar fa id vi ko ja ru zh zh_TW eo
Previo  Siguiente  Editar  Renombrar  Deshacer  Refrescar  Buscar  Administración  
Documentación
Historia
 
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.

Parámetros de los Métodos

Todos los parámetros de los métodos se separan con comas.

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

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

Véase también

Declaración de Variables, Declaración de Variables Locales, Using reserved keywords as identifiers, Param, By Reference Argument Passing