Les délégués en C#

Un délégué est un objet qui fait référence à une méthode ou simplement, c’est une variable de type référence pouvant contenir une référence de méthode. Les délégués en C# sont comme les pointeurs de fonction en C et C++. Il fournit un moyen d’indiquer quelle méthode doit être appelée lorsqu’un événement est déclenché.
 
 
Les délégués ont les caractéristiques suivantes:

  • Les délégués hérite de la classe System.MulticastDelegate.
  • Ils ont une signature et un type de retour. Une fonction ajoutée aux délégués doit être compatible avec cette signature.
  • Les délégués peuvent désigner des méthodes statiques ou d’instance.
  • Une fois qu’un objet délégué a été créé, il peut invoquer dynamiquement les méthodes vers lesquelles il pointe au moment de l’exécution.
  • Les délégués peuvent appeler des méthodes de manière synchrone et asynchrone.
  • Les délégués peuvent également être utilisés dans des « méthodes anonymes ».
Les événements en C#Les événements en C#Les événements sont des actions effectuer par l’utilisateur telles que le clic, le mouvement de souris, etc., ou des événements tels que des notifications générées…Lire plus
Déclaration des délégués

Un délégué peut être déclaré à l’aide du mot clé delegate. Une fois qu’un délégué est déclaré, son instance se réfère et appelle les méthodes dont le type de retour et la liste de paramètres correspondent à la déclaration de délégué.

public delegate int MyDelegate (string str);

Ici le délégué peut être utilisé pour référencer toute méthode comportant un seul paramètre de type string et renvoyant une variable de type int.
 

Instanciation des délégués

Une fois qu’un type de délégué est déclaré, un objet délégué doit être créé avec le mot-clé « new » et doit être associé à une méthode particulière. Lors de la création d’un délégué, l’argument transmis à l’expression « new » est le nom de la méthode, mais sans les arguments.
 
 

Exemple :
using System;

/* Déclarer le délégué. Ici, le type de retour et le type de paramètre 
   doivent être identique au type de retour et au type de paramètre
   de la méthode "operation" qui sert du délégué.
 */
delegate int operation(int n);

namespace WayToLearnX {
   
   public class DelegateApp {
      static int n = 4;
      
      public static int sum(int p) {
         n += p;
         return n;
      }
      public static int sub(int q) {
         n -= q;
         return n;
      }
      public static int getN() {
         return n;
      }
      public static void Main(string[] args) {
         //créer des instances de délégué
         operation op1 = new operation(sum);
         operation op2 = new operation(sub);
         
         //appele la méthode sum en utilisant l'objet délégué
         op1(10);
         Console.WriteLine("La valeur de N est : {0}", getN());

         //appele la méthode sub en utilisant l'objet délégué
         op2(2);
         Console.WriteLine("La valeur de N est : {0}", getN());
      }
   }
}

La sortie :

La valeur de N est : 14
La valeur de N est : 12

Comme vous pouvez le remarquer dans le code ci-dessus le type de retour et le type de paramètre des méthode « sum » et « sub » sont les mêmes que la méthode « operation » qui sert du délégué.
qcm-csharpQCM C# – Framework .NET – Partie 1QCM sur C# avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *