Junior
Wat kan een delegate in C# bevatten?
sobes.tech AI
Antwoord van AI
Een delegate in C# is een type dat verwijzingen naar methoden met een specifieke handtekening (returntype en parameter types) vertegenwoordigt. Het kan bevatten:
- Verwijzing naar een statische methode:
// Statische methode public static void StaticMethod(int x) { } // Delegate die verwijst naar een statische methode MyDelegate d = StaticMethod; - Verwijzing naar een instantie methode:
// Klasse met een instantie methode public class MyClass { public void InstanceMethod(int y) { } } // Aanmaken van een instantie van de klasse MyClass obj = new MyClass(); // Delegate die verwijst naar een instantie methode MyDelegate d = obj.InstanceMethod; - Lijst van aanroepen (invocation list) van meerdere methoden: Een delegate in C# is in feite multicanal. Het kan verwijzingen bevatten naar meerdere methoden. Bij het aanroepen van zo'n delegate worden alle methoden in de lijst in de volgorde van hun toevoeging aangeroepen.
public delegate void MyDelegate(int value); public static void Method1(int z) { } public static void Method2(int w) { } // Aanmaken van een multicanale delegate MyDelegate multiDelegate = Method1; multiDelegate += Method2; // Toevoegen van een tweede methode // Aanroepen van de delegate roept beide methoden aan multiDelegate(10);