Delen via


Gebeurtenissen en callbacks

Notitie

Deze inhoud wordt opnieuw afgedrukt door toestemming van Pearson Education, Inc. van Framework Design Guidelines: Conventions, Idioms en Patterns for Reusable .NET Libraries, 2nd Edition. Die editie werd in 2008 gepubliceerd en het boek is sindsdien volledig herzien in de derde editie. Sommige informatie op deze pagina is mogelijk verouderd.

Callbacks zijn uitbreidbaarheidspunten waarmee een framework via een gemachtigde terug kan bellen naar gebruikerscode. Deze gemachtigden worden meestal doorgegeven aan het framework via een parameter van een methode.

Gebeurtenissen zijn een speciaal geval van callbacks die handige en consistente syntaxis ondersteunen voor het leveren van de gemachtigde (een gebeurtenis-handler). Daarnaast bieden de voltooiing van de instructie van Visual Studio en ontwerpers hulp bij het gebruik van op gebeurtenissen gebaseerde API's. (Zie Gebeurtenisontwerp.)

✔️ OVERWEEG callbacks te gebruiken om gebruikers toe te staan aangepaste code uit te voeren door het framework.

✔️ OVERWEEG gebeurtenissen te gebruiken om gebruikers toe te staan het gedrag van een framework aan te passen zonder objectgeoriënteerd ontwerp te hoeven begrijpen.

✔️ DO prefer events over plain callbacks, omdat ze meer vertrouwd zijn met een breder scala aan ontwikkelaars en zijn geïntegreerd met voltooiing van Visual Studio-instructies.

❌ VERMIJD het gebruik van callbacks in prestatiegevoelige API's.

✔️ Gebruik de nieuwe Func<...>, Action<...>of Expression<...> typen in plaats van aangepaste gemachtigden bij het definiëren van API's met callbacks.

Func<...> en Action<...> vertegenwoordigt algemene gemachtigden. Expression<...> vertegenwoordigt functiedefinities die tijdens runtime kunnen worden gecompileerd en vervolgens kunnen worden aangeroepen, maar die ook kunnen worden geserialiseerd en doorgegeven aan externe processen.

✔️ DO meet en begrijp de gevolgen voor prestaties van het gebruik Expression<...>, in plaats van het gebruik Func<...> en Action<...> gedelegeerden.

Expression<...> typen zijn in de meeste gevallen logisch gelijk aan Func<...> en Action<...> gemachtigden. Het belangrijkste verschil is dat de gemachtigden bedoeld zijn voor gebruik in lokale processcenario's; expressies zijn bedoeld voor gevallen waarin het nuttig en mogelijk is om de expressie te evalueren in een extern proces of computer.

✔️ Begrijp dat u door een gemachtigde aan te roepen willekeurige code uitvoert en dat dit gevolgen kan hebben voor beveiliging, juistheid en compatibiliteit.

© Delen 2005, 2009 Microsoft Corporation. Alle rechten voorbehouden.

Herdrukt door toestemming van Pearson Education, Inc. van Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published oct 22, 2008 by Addison-Wesley Professional als onderdeel van de Microsoft Windows Development Series.

Zie ook