Junior
Čo môže obsahovať delegát v C#?
sobes.tech AI
Odpoveď od AI
Delegát v C# je typ, ktorý predstavuje odkazy na metódy s konkrétnou podpisom (typ návratu a typy parametrov). Môže obsahovať:
- Odkaz na statickú metódu:
// Statická metóda public static void StaticMethod(int x) { } // Delegát odkazujúci na statickú metódu MyDelegate d = StaticMethod; - Odkaz na inštančnú metódu:
// Trieda s inštančnou metódou public class MyClass { public void InstanceMethod(int y) { } } // Vytvorenie inštancie triedy MyClass obj = new MyClass(); // Delegát odkazujúci na inštančnú metódu MyDelegate d = obj.InstanceMethod; - Zoznam volaní (invocation list) viacerých metód: Delegát v C# je v skutočnosti viackanálový. Môže obsahovať odkazy na viacero metód. Pri volaní takéhoto delegáta sú volané všetky metódy v zozname v poradí ich pridania.
public delegate void MyDelegate(int value); public static void Method1(int z) { } public static void Method2(int w) { } // Vytvorenie viackanálového delegáta MyDelegate multiDelegate = Method1; multiDelegate += Method2; // Pridanie druhej metódy // Volanie delegáta volá obe metódy multiDelegate(10);