Maison  >  Article  >  développement back-end  >  Comment utiliser les délégués et les gestionnaires d'événements en C#

Comment utiliser les délégués et les gestionnaires d'événements en C#

PHPz
PHPzoriginal
2023-10-08 08:17:15909parcourir

Comment utiliser les délégués et les gestionnaires dévénements en C#

Comment utiliser les délégués et les gestionnaires d'événements en C#, des exemples de code spécifiques sont requis

En C#, les délégués et les gestionnaires d'événements sont deux concepts très importants et ils peuvent être utilisés pour implémenter des modèles de programmation basés sur les événements. Les délégués fournissent un mécanisme pour transmettre des méthodes en tant que paramètres, tandis que les gestionnaires d'événements sont utilisés pour gérer les méthodes d'événements spécifiques. Cet article présentera en détail comment utiliser les délégués et les gestionnaires d'événements en C#, et donnera des exemples de code spécifiques.

Tout d’abord, nous devons comprendre ce qu’est la délégation. Un délégué peut être considéré comme une référence à une méthode, qui peut être utilisée pour stocker l'adresse d'une méthode spécifique et appeler cette méthode en cas de besoin. En C#, un délégué est créé en définissant un type de délégué avec une signature spécifique. Voici un exemple :

public delegate void MyDelegate(string message);

public class MyClass
{
    public void MyMethod(string message)
    {
        Console.WriteLine("MyMethod被调用,参数为:" + message);
    }
}

Dans l'exemple ci-dessus, nous avons défini un type de délégué nommé MyDelegate qui peut accepter un paramètre de type chaîne et renvoyer null. Nous définissons ensuite une méthode MyMethod qui prend un paramètre et imprime le paramètre transmis.

Ensuite, nous pouvons utiliser le délégué pour appeler la méthode MyMethod. Un exemple est le suivant :

MyClass myObject = new MyClass();
MyDelegate myDelegate = new MyDelegate(myObject.MyMethod);
myDelegate("Hello World!");

Dans l'exemple ci-dessus, nous créons d'abord une instance de MyClass myObject, puis créons une instance de MyDelegate myDelegate et passons myObject.MyMethod en tant que paramètre à myDelegate. Enfin, la méthode MyMethod est exécutée en appelant myDelegate("Hello World!"), en passant la chaîne "Hello World!"

En plus de l'exemple ci-dessus, nous pouvons également utiliser des méthodes anonymes ou des expressions Lambda pour créer des délégués. Voici un exemple utilisant une méthode anonyme :

MyDelegate myDelegate = delegate (string message)
{
    Console.WriteLine("匿名方法被调用,参数为:" + message);
};

myDelegate("Hello World!");

Dans l'exemple ci-dessus, nous avons utilisé une méthode anonyme pour créer le délégué myDelegate et l'appeler de la même manière que l'exemple précédent.

Ensuite, jetons un coup d'œil aux gestionnaires d'événements. Les gestionnaires d'événements sont des méthodes permettant de gérer des événements spécifiques. Les événements en C# sont implémentés en définissant un membre d'événement dans une classe. Voici un exemple :

public class MyEventClass
{
    public event MyDelegate MyEvent;

    public void RaiseEvent(string message)
    {
        if (MyEvent != null)
        {
            MyEvent(message);
        }
    }
}

Dans l'exemple ci-dessus, nous définissons un événement nommé MyEvent dont le type est le type de délégué MyDelegate défini précédemment. Ensuite, nous définissons une méthode appelée RaiseEvent pour déclencher l'événement.

Ensuite, nous pouvons créer une instance de MyEventClass et associer des gestionnaires d'événements à l'événement. Un exemple est le suivant :

MyEventClass myEventObject = new MyEventClass();
myEventObject.MyEvent += myDelegate;

myEventObject.RaiseEvent("Hello World!");

Dans l'exemple ci-dessus, nous créons d'abord une instance de MyEventClass myEventObject et associons le gestionnaire d'événements myDelegate à l'événement MyEvent. Nous déclenchons ensuite l'événement en appelant myEventObject.RaiseEvent("Hello World!").

Pour résumer, les délégués et les gestionnaires d'événements sont des concepts importants pour la mise en œuvre d'une programmation événementielle en C#. En utilisant des délégués, nous pouvons passer une méthode en tant que paramètre et appeler la méthode en cas de besoin. En utilisant des gestionnaires d'événements, nous pouvons définir des méthodes de gestion pour des événements spécifiques et exécuter ces méthodes lorsque l'événement est déclenché. J'espère que cet article vous aidera à comprendre et à appliquer les délégués et les gestionnaires d'événements en C#.

(Remarque : les exemples de code ci-dessus sont uniquement à titre de référence et l'implémentation spécifique peut varier en fonction des exigences du projet.)

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