Maison > développement back-end > C++ > Devriez-vous utiliser des délégués anonymes vides dans les déclarations d'événements ?

Devriez-vous utiliser des délégués anonymes vides dans les déclarations d'événements ?

Barbara Streisand
Libérer: 2024-12-29 16:10:12
original
199 Les gens l'ont consulté

Should You Use Empty Anonymous Delegates in Event Declarations?

Délégués anonymes vides dans les déclarations d'événements : inconvénients potentiels

Dans la programmation d'événements, la pratique courante consistant à ajouter un délégué anonyme vide directement sur la déclaration d'événement , comme vu ci-dessous, simplifie le déclenchement d'événements en éliminant le besoin de vérifications nulles :

// Deliberately empty subscriber
public event EventHandler AskQuestion = delegate {};
Copier après la connexion

Alors que cette technique résout un problème spécifique, il est essentiel de prendre en compte les inconvénients potentiels :

  1. Impact sur les performances : L'appel de l'abonné délégué vide pour chaque invocation d'événement peut introduire une surcharge de performances négligeable. Dans les scénarios à haute fréquence, cela pourrait s'accumuler.
  2. Surcharge de maintenance : Bien que l'intention du délégué vide puisse être claire au départ, elle peut ne pas être explicite au fil du temps. Cela pourrait entraîner des problèmes de maintenance pour les développeurs qui ne connaissent pas le modèle.

Au lieu de s'appuyer sur des délégués vides, une approche alternative consiste à exploiter une méthode d'extension qui gère les vérifications nulles et simplifie le déclenchement d'événements :

public static void Raise(this EventHandler handler, object sender, EventArgs e)
{
    if(handler != null)
    {
        handler(sender, e);
    }
}
Copier après la connexion

Grâce à cette extension, le déclenchement d'événements se fait sans effort et réduit la surcharge de vérification des valeurs nulles :

// Works, even for null events.
MyButtonClick.Raise(this, EventArgs.Empty);
Copier après la connexion

Cette extension basée sur La solution élimine à la fois les inconvénients de performances et de maintenance associés aux délégués anonymes vides dans les déclarations d'événements.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal