Junior
Was kann ein Delegat in C# enthalten?
sobes.tech KI
Antwort von AI
Ein Delegate in C# ist ein Typ, der Verweise auf Methoden mit einer bestimmten Signatur (Rückgabetyp und Parameterarten) repräsentiert. Er kann enthalten:
- Verweis auf eine statische Methode:
// Statische Methode public static void StaticMethod(int x) { } // Delegate, das auf eine statische Methode verweist MyDelegate d = StaticMethod; - Verweis auf eine Instanzmethode:
// Klasse mit einer Instanzmethode public class MyClass { public void InstanceMethod(int y) { } } // Erstellen einer Instanz der Klasse MyClass obj = new MyClass(); // Delegate, das auf eine Instanzmethode verweist MyDelegate d = obj.InstanceMethod; - Aufrufliste (invocation list) mehrerer Methoden: Ein Delegate in C# ist in Wirklichkeit multikanal. Es kann Referenzen auf mehrere Methoden enthalten. Beim Aufruf eines solchen Delegates werden alle Methoden in der Liste in der Reihenfolge ihrer Hinzufügung aufgerufen.
public delegate void MyDelegate(int value); public static void Method1(int z) { } public static void Method2(int w) { } // Erstellen eines multikanalen Delegates MyDelegate multiDelegate = Method1; multiDelegate += Method2; // Hinzufügen einer zweiten Methode // Aufruf des Delegates ruft beide Methoden auf multiDelegate(10);