Händelser (programmeringsguide för C#)
Händelser gör det möjligt för en klass eller objekt att meddela andra klasser eller objekt när något av intresse inträffar. Den klass som skickar (eller genererar) som händelsen kallas utgivare och de klasser som tar emot (eller hanterar) kallas händelsen prenumeranter.
I ett typiskt C# Windows-formulär eller webbprogram prenumererar du på händelser som genereras av kontroller som knappar och listrutor. Du kan använda IDE (Visual C# Integrated Development Environment) 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 utlöses. 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 utlöses aldrig.
- Händelser används vanligtvis för att signalera användaråtgärder som 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ändelser på EventHandler delegering och EventArgs basklass.
Relaterade avsnitt
Mer information finns i:
- Så här prenumererar du på och avregistrerar dig från händelser
- Publicera händelser som följer .NET-riktlinjerna
- Så här genererar du basklasshändelser i härledda klasser
- Implementera gränssnittshändelser
- Implementera anpassade händelseåtkomster
Språkspecifikation för C#
För mer information, se Händelser i C#-språkspecifikationen. Språkspecifikationen är den slutgiltiga källan för C#-syntax och -användning.