Maison  >  Article  >  développement back-end  >  Gestionnaire d'événements C#

Gestionnaire d'événements C#

PHPz
PHPzoriginal
2024-09-03 15:28:561089parcourir

Un EventHandler en langage de programmation C# est chargé de gérer les événements, qui sont programmés par le codeur, pour être exécutés lorsque prévu, de manière asynchrone. Chaque langage de programmation a ses fonctions et ses limites, et le gestionnaire d'événements est l'une des fonctions essentielles à la bonne exécution du programme.

Nous comprenons que tout événement qui se produit est une action, qui est le résultat d'une autre action, comme un simple clic sur un bouton suivi des fonctions. Le délégué est une partie importante du gestionnaire d'événements et, une fois créé, il vise la méthode eventhandler.

Syntaxe :

Maintenant que nous avons compris ce qu'est le gestionnaire d'événements, passons à son sujet. La syntaxe d'une fonction ou d'une méthode est une partie cruciale, et une syntaxe simple pour la méthode du gestionnaire d'événements est la suivante :

public delegate void SimpleEH(int a, int b);
  • Vous devez avoir remarqué le mot-clé délégué, qui est d'un type spécial et représente purement les méthodes. Et les deux arguments que nous avons sont l'objet et les EventArgs, qui peuvent avoir des objectifs différents.
  • Ce simple délégué ci-dessus a une opération de base consistant à pointer vers la méthode de gestion des événements qui accepte deux paramètres d'un entier et renvoie également un entier. Cette syntaxe de la méthode peut être déclarée au niveau de l'espace de noms, ce qui implémentera une règle simple selon laquelle il n'est pas nécessaire de la répéter dans les classes imbriquées.

Comment fonctionne EventHandler en C# ?

Nous avons bien appris ce qu'est le gestionnaire d'événements en C# et sa syntaxe respective. Mais comprendre le fonctionnement du gestionnaire d’événements est un élément important, qui contribue à une meilleure mise en œuvre. Chaque mouvement ou étape d'un programme est un événement géré par un gestionnaire d'événements. Nous avons une méthode pour le gestionnaire d'événements, et le délégué est utilisé pour pointer vers cette méthode. Ici, le délégué peut être de n'importe quel type parmi ces cinq : classe, interface, structure, énumération et délégué.

Nous devons créer une instance du délégué que nous avons déjà appris avec la syntaxe. Le délégué que nous créons pointe vers la méthode eventhandler.  Ici, nous devons nous rappeler que tous les événements C# dans .NET sont essentiellement basés sur des délégués.

Fondamentalement, nous devons définir une méthode de gestion d'événements au sein du récepteur d'événements afin de répondre à un événement. Afin d'une meilleure mise en œuvre, la signature du délégué représentant l'événement doit correspondre à la méthode de l'événement que nous traitons actuellement.

Exemples d'implémentation de C# EventHandler

Voici les exemples mentionnés :

Exemple n°1

Nous avons compris la méthode eventhandler, sa syntaxe ainsi que son fonctionnement. Passons maintenant à la mise en œuvre ; ici, nous allons écrire un programme pour imprimer l'édition et l'exécuter.

Code :

using System;
public delegate int EHsample(int a, int b);
class Program {
static void Main() {
Adder a = new Adder();
EHsample instanceEHsample = new EHsample(a.Add);
int sampleOutput = instanceEHsample(4, 3);
Console.WriteLine("\n sampleOutput = {0}", sampleOutput);
}
}
public class Adder {
public int Add(int x, int y)
{ return x + y; }
}

Sortie :

Gestionnaire d'événements C#

Explication : Nous avons simplement commencé par importer notre système. Suivi d'une déclaration d'un délégué. Nous avons déjà compris la syntaxe que nous implémentons ici. Nous avons deux arguments sans délégué, tous deux entiers, a et b. Puis notre classe Program, avec la méthode main. Nous avons un simple Adder, avec une nouvelle instance. Nous avons créé une classe Adder plus loin dans le programme. Ensuite, nous avons créé notre instance pour le délégué et appelé notre instance d'additionneur à ajouter. Nous avons ensuite simplement passé les deux valeurs, qui sont ici 4 et 3. Enfin, nous avons notre instruction print, qui imprimera sampleOutput =, suivie de l'addition des deux valeurs que nous avons passées.

Ensuite, nous avons notre classe publique Adder, où l'opération d'ajout a lieu pour les valeurs que nous avons transmises plus tôt. La fonction Add prend deux arguments, renvoie l’addition des deux et la transmet à la sortie. Pour une sortie correcte, reportez-vous à la capture d'écran ci-dessous :

Exemple n°2

Ensuite, nous allons implémenter la méthode déléguée eventhandler avec notre prochain exemple.

Code :

using System;
public delegate void sampleEventHandler();
class Program {
public static event sampleEventHandler _show;
static void Main() {
_show += new sampleEventHandler(Event);
_show += new sampleEventHandler(Handler);
_show.Invoke();
}
static void Event() {
Console.WriteLine("\n Event");
}
static void Handler() {
Console.WriteLine("\n Handler");
}
}

Sortie :

Gestionnaire d'événements C#

Explication : Semblable à notre premier exemple, nous avons utilisé une instruction, puis notre déclaration pour le délégué et la classe avec la méthode main. Nous avons montré des instances de méthode dans lesquelles nous ajoutons de nouveaux événements à la liste. Ensuite, nous ajoutons deux événements : Event et Handler. Par souci de simplicité, nous avons utilisé le modificateur static pour l'événement, qui permettra un accès direct à l'événement au sein de la méthode statique Main.

De plus, le += utilisé ici n'a aucun lien avec les opérations arithmétiques. Reportez-vous à la capture d'écran ci-dessous pour le résultat :

Conclusion

Chaque événement est une action, et le gestionnaire d'événements gère correctement cet événement. Nous créons une instance pour le délégué et l'appelons si nécessaire ; l'instance du délégué pointe vers la méthode eventhandler. Ces événements sont largement utilisés dans le framework Windows Forms et sont le gestionnaire d'événements, et en cas de threading, nous implémentons le type BackGroundWorker.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Zone de liste en C#Article suivant:Zone de liste en C#