Delegates en events
Leer hoe delegates en events communicatie tussen objecten in C# mogelijk maken
Delegates en events is een gratis C# Academy-les op CoddyKit. Dit is les 5 van 6. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject C# Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus C# Academy bevat in totaal 6 lessen.
Gedelegeerden en gebeurtenissen
Welkom bij de volgende les! In deze les leer je over gedelegeerden en gebeurtenissen in C#, waarvoor je ze gebruikt en hoe ze gebeurtenisgestuurd programmeren mogelijk maken. Laten we beginnen!

Wat is een gedelegeerde?
Een gedelegeerde is een type dat een verwijzing naar een methode vertegenwoordigt. Hiermee kun je methoden als parameters doorgeven en dynamisch aanroepen.
Belangrijk punt: Gedelegeerden zijn essentieel voor het implementeren van gebeurtenissen en terugbelfuncties in C#.
Gedelegeerden definiëren en gebruiken
Gebruik het sleutelwoord delegate om een gedelegeerde te definiëren. Voorbeeld:
using System;
class Program {
// Define a delegate
public delegate void MessageDelegate(string message);
static void DisplayMessage(string message) {
Console.WriteLine(message);
}
static void Main() {
// Create a delegate instance
MessageDelegate msg = DisplayMessage;
// Invoke the delegate
msg("Hello, Delegates!");
}
}
Multicastgedelegeerden
Eén gedelegeerde kan naar meerdere methoden verwijzen en alle methoden worden in volgorde aangeroepen. Voorbeeld:
Tip: Gebruik multicastgedelegeerden wanneer meerdere acties moeten worden uitgevoerd.
using System;
class Program {
public delegate void MessageDelegate(string message);
static void ShowMessage(string message) {
Console.WriteLine("Message: " + message);
}
static void LogMessage(string message) {
Console.WriteLine("Log: " + message);
}
static void Main() {
MessageDelegate msg = ShowMessage;
msg += LogMessage; // Add another method
msg("Hello, Multicast Delegates!"); // Both methods are invoked
}
}
Wat is een gebeurtenis?
Een gebeurtenis is een mechanisme waarmee een klasse andere klassen of objecten kan melden wanneer er iets van belang gebeurt. Gebeurtenissen zijn gebaseerd op gedelegeerden.
Belangrijk punt: Gebeurtenissen zorgen voor een losse koppeling tussen producenten en abonnees bij gebeurtenisgestuurd programmeren.
Gebeurtenissen definiëren en gebruiken
Gebruik het sleutelwoord event met een type gedelegeerde om een gebeurtenis te definiëren. Voorbeeld:
Belangrijk punt: Met gebeurtenissen kun je reactieve en gebeurtenisgestuurde systemen bouwen.
using System;
class Publisher {
public delegate void NotifyDelegate(string message);
public event NotifyDelegate Notify; // Define an event
public void RaiseEvent(string message) {
Notify?.Invoke(message); // Invoke the event
}
}
class Subscriber {
public void OnNotify(string message) {
Console.WriteLine("Subscriber received: " + message);
}
}
class Program {
static void Main() {
Publisher pub = new Publisher();
Subscriber sub = new Subscriber();
pub.Notify += sub.OnNotify; // Subscribe to the event
pub.RaiseEvent("Hello, Events!"); // Raise the event
}
}
Abonnementen op gebeurtenissen opzeggen
Abonnees kunnen hun abonnement op gebeurtenissen opzeggen met de -=` operator. Voorbeeld:
Tip: Zeg abonnementen op gebeurtenissen altijd op om geheugenlekken te voorkomen.
using System;
class Publisher {
public delegate void NotifyDelegate(string message);
public event NotifyDelegate Notify;
public void RaiseEvent(string message) {
Notify?.Invoke(message);
}
}
class Subscriber {
public void OnNotify(string message) {
Console.WriteLine("Subscriber received: " + message);
}
}
class Program {
static void Main() {
Publisher pub = new Publisher();
Subscriber sub = new Subscriber();
pub.Notify += sub.OnNotify; // Subscribe
pub.RaiseEvent("First Message");
pub.Notify -= sub.OnNotify; // Unsubscribe
pub.RaiseEvent("Second Message"); // No output, as subscriber is removed
}
}
Praktijkopdracht
Maak een gedelegeerde CalculationDelegate voor rekenkundige bewerkingen en een gebeurtenis OnCalculate. Schrijf een programma dat de gebeurtenis activeert en berekeningen uitvoert. Voorbeeld:
using System;
class Calculator {
public delegate void CalculationDelegate(double result);
public event CalculationDelegate OnCalculate;
public void Add(double a, double b) {
double result = a + b;
OnCalculate?.Invoke(result);
}
}
class Program {
static void Main() {
Calculator calc = new Calculator();
// Subscribe to the event
calc.OnCalculate += result => Console.WriteLine("Result: " + result);
calc.Add(5, 3); // Outputs: Result: 8
}
}
Goed gedaan!
Gefeliciteerd! Je hebt geleerd hoe je gedelegeerden en gebeurtenissen gebruikt om dynamische en gebeurtenisgestuurde programma's te bouwen. In de volgende les verkennen we het werken met verzamelingen zoals lijsten, woordenboeken en wachtrijen. Laten we blijven programmeren!

Leer C# met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 93
- Lessen
- 346
Veelgestelde vragen
Is de les “Delegates en events” gratis?
Ja — de volledige tekst van “Delegates en events” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus C# Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus C# Academy bevat in totaal 6 lessen.
Wat leer ik in “Delegates en events”?
Leer hoe delegates en events communicatie tussen objecten in C# mogelijk maken Je oefent met C# Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met C# Academy te beginnen?
Ervaring vooraf is niet nodig. C# Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 5 van 6.
Hoe lang duurt de les “Delegates en events”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over C# Academy?
Ja. Elke les over C# Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Introductie tot interfaces
- Abstracte klassen
- Statische leden en methoden
- Enums en structs verkennen
- Delegates en events
- Werken met collecties: lijsten, woordenboeken en wachtrijen