c# Qu'est-ce qu'un délégué et qu'est-ce qu'un événement

下次还敢
Libérer: 2024-04-04 14:21:17
original
1063 Les gens l'ont consulté

Un délégué est un type de référence pointant vers une méthode et est utilisé pour réaliser un couplage lâche, tandis qu'un événement est un délégué spécial utilisé pour la gestion des événements. La délégation transfère la responsabilité des méthodes d'appel au destinataire, améliorant ainsi la réutilisabilité du code. Les événements permettent aux objets d'informer les abonnés de l'occurrence d'événements, et les abonnés peuvent répondre aux événements. Pour utiliser un délégué, vous devez définir un type de délégué avec la même signature que la méthode appelée, créer un objet délégué pointant vers la méthode et le transmettre en paramètre. Pour utiliser un événement, vous devez définir un événement à l'aide d'un type délégué dans la classe. Les abonnés s'abonnent et se désabonnent en ajoutant et en supprimant des méthodes. Lorsque l'événement est déclenché, tous les abonnés seront appelés.

c# Qu'est-ce qu'un délégué et qu'est-ce qu'un événement

Le rôle des délégués et des événements en C#

Les délégués et les événements sont des mécanismes couramment utilisés en C# pour obtenir un couplage lâche entre les codes et la gestion des événements.

Delegate

  • Définition : Un délégué est un type de référence qui pointe vers une méthode, qui permet de transmettre des méthodes en tant que paramètres à d'autres méthodes.
  • Fonction : Delegate transfère la responsabilité d'appeler une méthode de l'appelant au destinataire, obtenant ainsi la réutilisabilité et la flexibilité du code.

Événement

  • Définition : Un événement est un délégué spécial qui représente une action ou un événement pouvant être déclenché à un moment précis.
  • Rôle : Les événements permettent aux objets d'avertir les abonnés externes de l'occurrence d'événements spécifiques, et les abonnés peuvent répondre à ces événements.

La relation entre la délégation et les événements

Le délégué est le mécanisme sous-jacent des événements. Les événements utilisent des délégués pour gérer une liste d'abonnés et déclencher des appels de méthode à tous les abonnés lorsque l'événement se produit.

Utilisation de délégués

Pour utiliser des délégués, vous devez suivre ces étapes :

  1. Définissez un type de délégué qui a la même signature que la méthode que vous souhaitez appeler.
  2. Créez une instance de l'objet délégué qui pointe vers la méthode à appeler.
  3. Passez les objets délégués en tant que paramètres à d'autres méthodes.

Utiliser des événements

Pour utiliser des événements, vous devez suivre ces étapes :

  1. Définir un événement dans une classe qui utilise un type de délégué comme type.
  2. Les abonnés ajoutent des méthodes aux événements via l'opérateur event +=.
  3. Lorsqu'un événement se déclenche, supprimez la méthode via l'opérateur event -= ou appelez tous les abonnés via la méthode event().

Exemple

Voici un exemple simple utilisant des délégués et des événements :

<code class="csharp">// 定义一个委托
public delegate void MyEventHandler(object sender, EventArgs e);

// 定义一个事件
public event MyEventHandler MyEvent;

// 触发事件
protected virtual void OnMyEvent(EventArgs e)
{
    MyEvent?.Invoke(this, e);
}</code>
Copier après la connexion
<code class="csharp">// 订阅事件
myClass.MyEvent += MyEventHandler;</code>
Copier après la connexion
<code class="csharp">// 触发事件
myClass.OnMyEvent(new EventArgs());</code>
Copier après la connexion

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!

Étiquettes associées:
c#
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal