Dela via


Händelser och återanrop

Kommentar

Det här innehållet skrivs om med behörighet från Pearson Education, Inc. från Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Den utgåvan publicerades 2008, och boken har sedan dess reviderats helt i den tredje utgåvan. En del av informationen på den här sidan kan vara inaktuell.

Återanrop är utökningspunkter som gör att ett ramverk kan anropa tillbaka till användarkod via ett ombud. Dessa ombud skickas vanligtvis till ramverket via en parameter för en metod.

Händelser är ett specialfall med återanrop som stöder praktisk och konsekvent syntax för att tillhandahålla ombudet (en händelsehanterare). Dessutom ger Visual Studio-instruktionen komplettering och designers hjälp med att använda händelsebaserade API:er. (Se Händelsedesign.)

✔️ ÖVERVÄG att använda återanrop för att tillåta att användare tillhandahåller anpassad kod som ska köras av ramverket.

✔️ ÖVERVÄG att använda händelser för att tillåta användare att anpassa beteendet för ett ramverk utan att behöva förstå objektorienterad design.

✔️ Föredrar händelser framför vanliga återanrop, eftersom de är mer bekanta för ett bredare utbud av utvecklare och är integrerade med Visual Studio-instruktionens slutförande.

❌ UNDVIK att använda motringningar i prestandakänsliga API:er.

✔️ Använd de nya Func<...>typerna , Action<...>eller Expression<...> i stället för anpassade ombud när du definierar API:er med återanrop.

Func<...> och Action<...> representerar allmänna ombud. Expression<...> representerar funktionsdefinitioner som kan kompileras och därefter anropas vid körning men som också kan serialiseras och skickas till fjärrprocesser.

✔️ Mät och förstå prestandakonsekvenserna av att använda Expression<...>i stället för att använda Func<...> och Action<...> delegera.

Expression<...> är i de flesta fall logiskt likvärdiga med Func<...> och Action<...> ombud. Den största skillnaden mellan dem är att ombuden är avsedda att användas i lokala processscenarier. uttryck är avsedda för fall där det är fördelaktigt och möjligt att utvärdera uttrycket i en fjärrprocess eller dator.

✔️ Förstå att genom att anropa ett ombud kör du godtycklig kod och det kan få konsekvenser för säkerhet, korrekthet och kompatibilitet.

Portioner © 2005, 2009 Microsoft Corporation. Med ensamrätt.

Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, publicerad 22 okt 2008 av Addison-Wesley Professional som en del av Microsoft Windows Development Series.

Se även