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
  • Appelez la méthode

Définition de 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 -

  • Access Specifier - Ceci détermine la visibilité d'une variable ou d'une méthode d'une autre classe.

  • Return type- Une méthode peut renvoyer 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 estvoid.

  • Method name- 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.

  • Parameter list- 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 de paramètres d'une méthode. Les paramètres sont facultatifs; autrement dit, une méthode peut ne contenir aucun paramètre.

  • Method body - Celui-ci contient l'ensemble des instructions nécessaires pour terminer 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 de 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;
   }
   ...
}

Appel de méthodes en C #

Vous pouvez appeler une méthode en utilisant le nom de la méthode. L'exemple suivant illustre cela -

using 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 à la classe NumberManipulator , vous pouvez l'appeler à partir d'une autre classe Test .

using 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écursif

Une méthode peut s'appeler. Ceci est connu commerecursion. Voici un exemple qui calcule factorielle pour un nombre donné à l'aide d'une fonction récursive -

using 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 manières de transmettre des paramètres à une méthode -

N ° Sr. 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 aide à renvoyer plus d'une valeur.