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 {};
Alors que cette technique résout un problème spécifique, il est essentiel de prendre en compte les inconvénients potentiels :
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); } }
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);
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!