Événements et rappels
Remarque
Ce contenu est réimprimé avec l’autorisation de Pearson Education, Inc. à partir des Instructions de conception d’une infrastructure : conventions, idiomes et modèles des bibliothèques réutilisables .NET, 2ème édition. Cette édition a été publiée en 2008, et le livre a été entièrement révisé dans la troisième édition. Certaines informations sur cette page peuvent être obsolètes.
Les rappels sont des points d’extensibilité qui permettent à un framework de rappeler le code utilisateur par le biais d’un délégué. Ces délégués sont généralement passés au framework via un paramètre d’une méthode.
Les événements sont un cas spécial de rappel qui prend en charge une syntaxe pratique et cohérente pour fournir le délégué (gestionnaire d’événements). En outre, la saisie semi-automatique des instructions et les concepteurs de Visual Studio vous aident à utiliser les API basées sur les événements. (Voir Conception d’événements.)
✔️ ENVISAGEZ d’utiliser des rappels pour permettre aux utilisateurs de fournir du code personnalisé à exécuter par le framework.
✔️ ENVISAGEZ d’utiliser des événements pour permettre aux utilisateurs de personnaliser le comportement d’un framework sans avoir à comprendre la conception orientée objet.
✔️ PRÉFÉREZ les événements aux rappels simples, car ils sont plus familiers pour un plus large éventail de développeurs et sont intégrés à la saisie semi-automatique des instructions Visual Studio.
❌ ÉVITEZ d’utiliser des rappels dans les API sensibles aux performances.
✔️ UTILISEZ les nouveaux types Func<...>
, Action<...>
ou Expression<...>
au lieu de délégués personnalisés lors de la définition d’API avec des rappels.
Func<...>
et Action<...>
représentent les délégués génériques. Expression<...>
représente des définitions de fonction qui peuvent être compilées et appelées par la suite au moment de l’exécution, mais qui peuvent également être sérialisées et passées à des processus distants.
✔️ MESUREZ et comprenez les implications en matière de performances de l’utilisation de Expression<...>
, au lieu d’utiliser des délégués Func<...>
et Action<...>
.
Expression<...>
Dans la plupart des cas, les types sont logiquement équivalents aux délégués Func<...>
et Action<...>
. La principale différence entre eux est que les délégués sont destinés à être utilisés dans les scénarios de processus locaux ; les expressions sont destinées aux cas où il est avantageux et possible d’évaluer l’expression dans un processus ou un ordinateur distant.
✔️ COMPRENEZ qu’en appelant un délégué, vous exécutez du code arbitraire qui peut avoir des répercussions sur la sécurité, l’exactitude et la compatibilité.
Portions © 2005, 2009 Microsoft Corporation. Tous droits réservés.
Réimprimé avec l’autorisation de Pearson Education, Inc. et extrait de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition par Krzysztof Cwalina et Brad Abrams, publié le 22 octobre 2008 par Addison-Wesley Professional dans le cadre de la série sur le développement Microsoft Windows.