Aller de l’avant avec les événements .NET, les gestionnaires d’événements et CustomEventArgs


introduction

Dans l’article précédent sur les événements, nous avons expliqué comment nous sommes entourés d’événements et à quel point ils peuvent être utiles lors de l’écriture de code faiblement couplé. Nous avons vu comment nous pouvons définir des événements, déclencher et enfin gérer des événements. Si vous ne l’avez pas déjà fait, je vous suggérerai de lire ce post pour le contexte, puis les sujets de ce post seront plus faciles à suivre.

Dans cet article, nous continuerons notre voyage et avancerons en apprenant davantage sur l’implémentation d’événements dans .NET. L’une des exigences courantes lors de la génération d’événements est de savoir comment transmettre des données avec des notifications d’événements aux gestionnaires d’événements. Une manière très courante de le faire en utilisant Custom EventArgs.

EventArgs personnalisés

le EventArgs La classe est utilisée dans la signature des événements .NET. Lorsque nous devons transmettre des données personnalisées, la classe EventArgs peut être étendue. Le code suivant montre que nous pouvons créer une classe de style POCO pour nos données d’événement personnalisées.

.NET Comprend un générique Gestionnaire d’événements classe que nous pouvons utiliser pour les EventArgs personnalisés.

Lever un événement avec des EventArgs personnalisés

J’ai mis à jour le code pour déclencher l’événement dans la classe Printer et vous pouvez voir que ce n’est pas très différent en plus du fait que nous remplissons maintenant des données pour l’événement personnalisé lors de la génération de l’événement.

Voici le code mis à jour pour votre référence:

Gestion de CustomEventArgs

Le mécanisme de gestion de customEventArgs est presque le même lorsqu’il s’agit des EventArgs intégrés. J’ai ajouté une nouvelle classe appelée UI et introduisez une méthode Montrer qui utilise nos EventArgs personnalisés WorkPerformedEventArgs comme indiqué ci-dessous:

Événement de câblage avec EventHandler

Encore une fois, cette partie n’est pas non plus modifiée et le code suivant montre comment nous avons maintenant câblé le impressionComplété événement avec gestionnaire d’événements:

Avec tout cela en place, j’exécute le code et le résultat suivant montre la sortie de l’exécution. Vous verrez dans la sortie que nous avons maintenant des informations sur les données CustomEventArgs ainsi que sur la fenêtre de la console.

Sommaire

Nous pouvons passer très facilement des données d’événement aux gestionnaires d’événements en utilisant EventHandler générique et une classe C # POCO qui conduit à partir des EventArgs. J’espère que cela vous aidera à réfléchir aux endroits dans votre code où vous pouvez utiliser cette fonctionnalité et cela rendra votre code plus facile à comprendre et à étendre. Vous pouvez voir le code source sur ce URL (compilateur C # en ligne) Jusqu’à la prochaine fois, bon codage.

Close Menu