Déclaration de méthode
Les procédures
[ STATIC ] { PUBLIC | PRIVATE } { PROCEDURE | SUB }
Identificateur
(
[ [ BYREF ] Paramètre AS Datatype [ , ... ] ] [ , ]
[ OPTIONAL [ BYREF ] _ ParamètreOptionel_ AS TypeDeDonnée [ , ... ] ] [ , ] [ ... ]
)
...
END
Ceci déclare une procédure, c.à.d. une méthode qui ne retourne rien.
Le mot-clé
END indique la fin de la procédure.
Les fonctions
[ STATIC ] { PUBLIC | PRIVATE } { FUNCTION | PROCEDURE | SUB }
Identificateur
(
[ [ BYREF ] Paramètre AS Datatype [ , ... ] ] [ , ]
[ OPTIONAL [ BYREF ] ParamètreOptionel AS TypeDeDonnée [ , ... ] ] [ , ] [ ... ]
)
AS TypeDeDonnée
...
END
Ceci déclare une fonction, c.à.d. une méthode qui retourne une valeur.
Le mot-clé
END indique la fin de la fonction.
Le type de donnée de la valeur de retour doit être indiqué.
Bien sûr, ces déclarations doivent être écrites sur une ligne unique. Elles sont séparées ici pour que ce soit lisible.
Utilisez le mot-clé
/wiki/cat/return pour terminer la fonction et passer la valeur de retour à l'appelant.
Exemple
Public Sub Main()
Print Calc(0);; Calc(0.5);; Calc(1)
End
Function Calc(fX As Float) As Float
Return Sin(fX) * Exp(- fX)
End
0 0.290786288213 0.309559875653
Accessibilité de la méthode
La Méthode est accessible partout dans la classe où elle est déclarée.
-
Si le mot-clé
PUBLIC
est indiqué, elle est alors accessible dans les autres classes ayant une référence à un objet de cette classe
-
Si le mot-clé
STATIC
est indiqué, la méthode ne peut accéder qu'aux variables statiques de la classe.
Arguments de méthode
Tous les paramètres de Méthode sont séparés par des virgules.
-
Si le mot-clé
OPTIONAL
est indiqué, tous les paramètres après le mot-clé sont facultatifs. Vous pouvez préciser une valeur par défaut après la déclaration du paramètre en utilisant le signe égal.
-
Si la liste des paramètres se termine avec
...
, alors la méthode peut prendre des arguments supplémentaires. Tous les arguments additionnels passés à la méthode sont accessibles avec la classe Param.
Exemple
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
Arguments passés par référence
Lorsque le mot-clé
BYREF
est spécifié, l'argument doit être une expression d'affectation qui sera modifiée par la fonction appelée.
Exemple
SUB ConvPixelEnCentimetre(BYREF Value as Float, Dpi AS Integer)
Value = Value / Dpi * 2.54
END
PUBLIC SUB Main()
DIM Size AS Float
Size = 256
ConvPixelEnCentimetre(BYREF Size, 96)
PRINT Size
END
Si vous ne spécifiez pas BYREF lors de l’appel de fonction, l’argument est alors passé par valeur, même si BYREF a été spécifié dans la déclaration de fonction.
En d’autres termes : la fonction appelée
autorise le passage d'argument par référence, alors que l’appelant le
décide.
Compilation Just In-Time
Depuis 3.2
Si le mot-clé
FAST
est utilisé, alors la méthode sera optimisée par le
Just In Time Compiler.
Voir aussi