C# - Méthodes
Une méthode est un groupe d'instructions qui exécutent ensemble une tâche. Chaque programme C# a au moins une classe avec une méthode nommée Main.
Pour utiliser une méthode, vous devez −
- Définir la méthode
- Appeler la méthode
Définir des méthodes en C#
Lorsque vous définissez une méthode, vous déclarez essentiellement les éléments de sa structure. La syntaxe pour définir une méthode en C# est la suivante −
<Access Specifier> <Return Type> <Method Name>(Parameter List) { Method Body }
Voici les différents éléments d'une méthode −
-
Spécificateur d'accès − Ceci détermine la visibilité d'une variable ou d'une méthode d'une autre classe.
-
Type de retour − Une méthode peut retourner une valeur. Le type de retour est le type de données de la valeur renvoyée par la méthode. Si la méthode ne renvoie aucune valeur, le type de retour est void .
-
Nom de la méthode − Le nom de la méthode est un identifiant unique et il est sensible à la casse. Il ne peut pas être identique à tout autre identifiant déclaré dans la classe.
-
Liste des paramètres − Entre parenthèses, les paramètres sont utilisés pour transmettre et recevoir des données d'une méthode. La liste des paramètres fait référence au type, à l'ordre et au nombre des paramètres d'une méthode. Les paramètres sont facultatifs ; c'est-à-dire qu'une méthode peut ne contenir aucun paramètre.
-
Corps de la méthode − Celui-ci contient l'ensemble des instructions nécessaires pour réaliser l'activité requise.
Exemple
L'extrait de code suivant montre une fonction FindMax qui prend deux valeurs entières et renvoie la plus grande des deux. Il a un spécificateur d'accès public, il est donc accessible depuis l'extérieur de la classe à l'aide d'une instance de la classe.
class NumberManipulator { public int FindMax(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; } ... }
Méthodes d'appel en C#
Vous pouvez appeler une méthode en utilisant le nom de la méthode. L'exemple suivant illustre cela −
Démo en directusing System; namespace CalculatorApplication { class NumberManipulator { public int FindMax(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; } static void Main(string[] args) { /* local variable definition */ int a = 100; int b = 200; int ret; NumberManipulator n = new NumberManipulator(); //calling the FindMax method ret = n.FindMax(a, b); Console.WriteLine("Max value is : {0}", ret ); Console.ReadLine(); } } }
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −
Max value is : 200
Vous pouvez également appeler une méthode publique à partir d'autres classes en utilisant l'instance de la classe. Par exemple, la méthode FindMax appartient au NumberManipulator classe, vous pouvez l'appeler depuis une autre classe Test .
Démo en directusing System; namespace CalculatorApplication { class NumberManipulator { public int FindMax(int num1, int num2) { /* local variable declaration */ int result; if(num1 > num2) result = num1; else result = num2; return result; } } class Test { static void Main(string[] args) { /* local variable definition */ int a = 100; int b = 200; int ret; NumberManipulator n = new NumberManipulator(); //calling the FindMax method ret = n.FindMax(a, b); Console.WriteLine("Max value is : {0}", ret ); Console.ReadLine(); } } }
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −
Max value is : 200
Appel de méthode récursive
Une méthode peut s'appeler elle-même. C'est ce qu'on appelle la récursivité . Voici un exemple qui calcule la factorielle pour un nombre donné à l'aide d'une fonction récursive −
Démo en directusing System; namespace CalculatorApplication { class NumberManipulator { public int factorial(int num) { /* local variable declaration */ int result; if (num == 1) { return 1; } else { result = factorial(num - 1) * num; return result; } } static void Main(string[] args) { NumberManipulator n = new NumberManipulator(); //calling the factorial method {0}", n.factorial(6)); Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7)); Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8)); Console.ReadLine(); } } }
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −
Factorial of 6 is: 720 Factorial of 7 is: 5040 Factorial of 8 is: 40320
Passer des paramètres à une méthode
Lorsque la méthode avec paramètres est appelée, vous devez transmettre les paramètres à la méthode. Il existe trois façons de passer des paramètres à une méthode −
Sr.No. | Mécanisme et description |
---|---|
1 | Paramètres de valeur Cette méthode copie la valeur réelle d'un argument dans le paramètre formel de la fonction. Dans ce cas, les modifications apportées au paramètre à l'intérieur de la fonction n'ont aucun effet sur l'argument.
|
2 | Paramètres de référence Cette méthode copie la référence à l'emplacement mémoire d'un argument dans le paramètre formel. Cela signifie que les modifications apportées au paramètre affectent l'argument.
|
3 | Paramètres de sortie Cette méthode permet de renvoyer plusieurs valeurs.
|
Langue C