Maison  >  Article  >  développement back-end  >  Comment déclarer et instancier des délégués en C# ?

Comment déclarer et instancier des délégués en C# ?

WBOY
WBOYavant
2023-09-04 20:01:051340parcourir

Comment déclarer et instancier des délégués en C# ?

Les délégués C# sont similaires aux pointeurs de fonction en C ou C++. Un délégué est une variable de type référence qui contient une référence à une méthode. Les références peuvent être modifiées au moment de l'exécution.

Syntaxe pour déclarer un délégué -

delegate <return type> <delegate-name> <parameter list>

Voyons maintenant comment instancier un délégué en C#.

Après avoir déclaré le type délégué, vous devez utiliser le mot-clé new pour créer l'objet délégué et l'associer à une méthode spécifique. Lorsque vous créez un délégué, les paramètres passés à la nouvelle expression sont écrits comme un appel de méthode, mais sans les paramètres de la méthode.

public delegate void printString(string s);
...
printString ps1 = new printString(WriteToScreen);
printString ps2 = new printString(WriteToFile);

Voici un exemple de déclaration et d'instanciation d'un délégué en C# -

Exemple

Démonstration en direct

using System;

delegate int NumberChanger(int n);
namespace DelegateAppl {

   class TestDelegate {
      static int num = 10;

      public static int AddNum(int p) {
         num += p;
         return num;
      }

      public static int MultNum(int q) {
         num *= q;
         return num;
      }

      public static int getNum() {
         return num;
      }

      static void Main(string[] args) {
         //create delegate instances
         NumberChanger nc1 = new NumberChanger(AddNum);
         NumberChanger nc2 = new NumberChanger(MultNum);

         //calling the methods using the delegate objects
         nc1(25);
         Console.WriteLine("Value of Num: {0}", getNum());
         nc2(5);
         Console.WriteLine("Value of Num: {0}", getNum());
         Console.ReadKey();
      }
   }
}

Sortie

Value of Num: 35
Value of Num: 175

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer