Gambas Documentation
Aperçu du Langage
Assign
Boucle d'évènements
Chemins de Fichiers & Répertoires
Classes de conteneur natives
Constantes du langage
Constantes prédéfinies
Déclaration d'énumération
Déclaration d'évènement
Déclaration de constante
Déclaration de méthode
Déclaration de propriété
Déclaration de structure
Déclaration de tableau
Déclaration de variable locale
Déclaration de variables
Entiers
Expressions
Fonctions arithmétiques
Fonctions associées aux fichiers et dossiers
Fonctions de chaîne de caractères
Fonctions de conversion
Fonctions de date et de temps
Fonctions de flux et d'entrée/sortie
Fonctions de formatage
Fonctions de Localisation et Traduction
Fonctions de manipulation de bits
Fonctions de nombres aléatoires
Fonctions de test des caractères
Fonctions de type de données
Fonctions diverses
Fonctions et structures de contrôle
Fonctions intrinsèques
Fonctions logarithmiques et exponentielles
Fonctions trigonométriques
Formats définis par l'utilisateur
Gestion d'erreurs
Gestion des événements
Gestion des fonctions externes
Gestion des objets et des classes
Gestion des processus
Gestionnaires d'évènements globaux
Le modèle objet de Gambas
Méthodes de comparaison
Méthodes spéciales
Nombres
Nombres flottants
Opérateurs arithmétiques
Opérateurs d'affectation
Opérateurs de chaînes de caractères
Opérateurs logiques
Ordre d'évaluation des opérateurs
Représentation binaire des données
Structures de contrôle de boucles
Structures de contrôle diverses
Syntaxe des modes de fichier
Tableaux natifs
Tracés
Types de données
Utilisation des mots réservés comme identificateur
À traduire
Code Snippets
Comment faire ...
Compilation et installation
Composants
Controls pictures
Derniers changements
Dépôt d'applications
Documentation de l'Environnement de développement
Documentation des développeurs
Documents
Indenter
Index de tous les Documents
Index du langage
Lexique
LISEZ-MOI
Manuel du wiki
Messages d'erreur
Tutoriels
Wiki License

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
6.773333333333

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