Händelser (programmeringsguide för C# )
Händelser gör det möjligt för en klass eller ett objekt att meddela andra klasser eller objekt när något av intresse inträffar. Klassen som skickar (eller genererar) händelsen kallas utgivare och de klasser som tar emot (eller hanterar) händelsen kallas prenumeranter.
I ett typiskt C#-Windows Forms- eller webbprogram prenumererar du på händelser som aktiveras av kontroller som knappar och listrutor. Du kan använda Visual C# Integrated Development Environment (IDE) för att bläddra bland de händelser som en kontroll publicerar och välja de som du vill hantera. IDE är ett enkelt sätt att automatiskt lägga till en tom händelsehanterarmetod och koden för att prenumerera på händelsen. Mer information finns i Så här prenumererar du på och avbryter prenumerationen på händelser.
Översikt över händelser
Händelser har följande egenskaper:
Utgivaren avgör när en händelse aktiveras. prenumeranterna avgör vilken åtgärd som vidtas som svar på händelsen.
En händelse kan ha flera prenumeranter. En prenumerant kan hantera flera händelser från flera utgivare.
Händelser som inte har några prenumeranter aktiveras aldrig.
Händelser används vanligtvis för att signalera användaråtgärder, till exempel knappklickningar eller menyval i grafiska användargränssnitt.
När en händelse har flera prenumeranter anropas händelsehanterarna synkront när en händelse aktiveras. Information om hur du anropar händelser asynkront finns i Anropa synkrona metoder asynkront.
I .NET-klassbiblioteket baseras händelserna på ombudet EventHandler och basklassen EventArgs .
Närliggande avsnitt
Mer information finns i:
Så här prenumererar du på och avbryter prenumerationen på händelser
Så här publicerar du händelser som överensstämmer med .NET-riktlinjer
C#-språkspecifikation
Mer information finns i Händelser i C#-språkspecifikationen. Språkspecifikationen är den slutgiltiga källan för C#-syntax och -användning.
Utvalda bokkapitel
Ombud, händelser och Lambda-uttryck i C# 3.0 Cookbook, Tredje utgåvan: Mer än 250 lösningar för C# 3.0-programmerare
Ombud och händelser i Learning C# 3.0: Grunderna i C# 3.0