c delegate tutorial how instantiate
Ce didacticiel explique comment utiliser un délégué C # à l'aide d'exemples de code simples. Vous découvrirez également les délégués de multidiffusion en C #:
Que sont les délégués C #?
En C #, les délégués sont similaires aux pointeurs disponibles en C ++. Il s'agit essentiellement d'une variable de type référence qui contient une référence à une autre méthode.
De plus, sa référence ne peut pas être modifiée pendant l'exécution. Il est disponible dans la classe System.Delegate. Un délégué est utilisé pour gérer la fonction de rappel ou un gestionnaire d'événements.
C'est comme un pointeur vers une fonction et peut être déclaré à l'aide du mot-clé délégué suivi de la signature de la fonction.
=> Lisez toute la série de formations C # ici
La déclaration du délégué détermine également la méthode qui peut être référencée par le délégué, c'est-à-dire qu'il peut s'agir d'une méthode de référence qui a la même signature qu'un délégué.
Ce que vous apprendrez:
Instanciation du délégué en C #
Une fois que le délégué est déclaré, il peut être instancié avec le nouveau mot clé, puis il doit être associé à la méthode. Tout comme une méthode, l'expression doit passer un argument.
Invoquer un délégué
Un délégué peut être appelé comme une méthode.
Exemple:
class Program { public delegate void methodDelegate(); public static void Main(string() args) { methodDelegate md = new methodDelegate(method); md.Invoke(); } public static void method() { Console.WriteLine('Delegate pointing to method'); } }
Production
La sortie du programme ci-dessus sera:
Délégué pointant vers la méthode
Explication
meilleur outil de capture pour Windows 10
Dans le programme ci-dessus, nous avons créé un objet du délégué et l'avons pointé vers la méthode que nous devons appeler. Ensuite, nous avons utilisé invoke () pour appeler la méthode en utilisant ‘delegate’.
meilleures applications d'écriture pour Windows 10
Pourquoi avons-nous besoin d'utiliser le délégué C #?
Nous aurions pu appeler la méthode directement à partir de notre méthode principale, mais pourquoi avons-nous vraiment besoin d'utiliser un délégué?
Déléguer en langage simple signifie un représentant pour la communication entre deux groupes. Même dans un contexte de programmation, il a un rôle similaire. Il est utilisé pour les rappels.
Supposons que nous ayons une méthode de longue durée et que nous devions vérifier la progression de cette exécution en continu. Pour ce faire, nous utilisons le rappel à l'aide d'un délégué. Cela nous permet de garder une trace de la méthode de longue date.
Par exemple:
public class Program { One on = new One(); public static void Main(string() args) { One.generateNumbers(callDelegate); Console.ReadLine(); } public static void callDelegate(int j) { Console.WriteLine('The current random number is :' + j); } } public class One { public delegate void callingDelegate(int j); public static void generateNumbers(callingDelegate cd) { Random rn = new Random(); int i = 0; int j = 0; while (i <10) { j = rn.Next(9999); cd(j); i++; } } }
La sortie du programme ci-dessus sera:
Production
Le nombre aléatoire actuel est: 1559
Le nombre aléatoire actuel est: 6127
Le nombre aléatoire actuel est: 6639
Le nombre aléatoire actuel est: 3963
Le nombre aléatoire actuel est: 4479
Le nombre aléatoire actuel est: 6898
Le nombre aléatoire actuel est: 1390
Le nombre aléatoire actuel est: 6409
Le nombre aléatoire actuel est: 2629
Le nombre aléatoire actuel est: 5464
Dans le programme ci-dessus, nous avons utilisé un délégué pour obtenir un rappel de la méthode «generateNumber» qui génère un entier aléatoire pour une itération donnée. Cette itération peut être énorme. Par conséquent, le délégué ici est utilisé pour obtenir un rappel à chaque fois qu'un entier aléatoire est généré dans la méthode.
Qu'est-ce qu'un délégué de multidiffusion en C #?
Un délégué peut pointer vers plusieurs méthodes différentes. Un délégué qui pointe vers plusieurs méthodes différentes est appelé délégué de multidiffusion. Un signe «+» (opérateur) est utilisé pour ajouter une fonction au délégué et le signe «-» (opérateur) est utilisé pour supprimer toute fonction existante attachée au délégué.
Un délégué de multidiffusion appelle les fonctions vers lesquelles il pointe et seul le même type de fonctions peut être combiné pour former un délégué de multidiffusion. Cela peut être utilisé pour créer une liste de méthodes qui doivent être appelées en appelant un seul délégué.
Jetons un œil à un programme simple pour comprendre ceci:
Programme
public class Program { delegate void IntegerCounter(int n); public static void method_A(int a) { a = a + 5; Console.WriteLine('the value of first method {0}', a); } public static void method_B(int b) { b = b * 5; Console.WriteLine('the value of second method {0}', b); } public static void Main(string() args) { //creating instance of the delegate IntegerCounter x; IntegerCounter y = new IntegerCounter(method_A); IntegerCounter z = new IntegerCounter(method_B); x = y; x += z; x(10); Console.ReadLine(); } }
Production
la valeur de la première méthode 5
la valeur de la deuxième méthode 50
Dans le programme ci-dessus, nous avons déclaré un délégué IntegerCounter. Ensuite, nous avons créé deux méthodes différentes qui effectuent une certaine opération sur la valeur entière. Ensuite, dans la méthode principale, nous avons initialisé le délégué pour les deux méthodes définies.
Ensuite, nous avons d'abord utilisé l'objet délégué pour pointer vers la première méthode de délégué initialisée, puis nous avons utilisé le signe «+» pour déléguer la multidiffusion et pointer vers une autre méthode. Ensuite, si nous passons un paramètre entier, les deux méthodes recevront le même paramètre et seront exécutées.
Conclusion
Un délégué est un pointeur vers une fonction. La méthode qui va utiliser le délégué doit avoir le même paramètre et le même type de retour.
Le délégué peut être déclaré similaire à une fonction et peut également être appelé de la même manière. Un délégué de multidiffusion est lorsque nous utilisons le délégué pour pointer vers plusieurs méthodes et un opérateur plus «+» est utilisé pour utiliser la multidiffusion.
=> Découvrez toute la série de didacticiels de formation C # ici
lecture recommandée
- Débogage de scripts Selenium avec des journaux (Tutoriel Log4j) - Tutoriel Selenium # 26
- Script Selenium efficace et scénarios de dépannage - Tutoriel Selenium # 27
- Implémentation de notre premier script WebDriver - Tutoriel Selenium WebDriver # 10
- Configuration et installation complètes de WebDriver avec Eclipse - Tutoriel Selenium # 9
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Création de génériques et de suites de tests - Tutoriel Selenium # 22
- Comment gérer l'exception dans les scripts SoapUI Groovy - Tutoriel SoapUI # 11
- Comment mettre à jour à distance l'état d'exécution du scénario de test TestLink via Selenium - Tutoriel n ° 3