Junior
Co může obsahovat delegát v C#?
sobes.tech AI
Odpověď od AI
Delegát v C# je typ, který představuje odkazy na metody s konkrétní signaturou (návratový typ a typy parametrů). Může obsahovat:
- Odkaz na statickou metodu:
// Statická metoda public static void StaticMethod(int x) { } // Delegát odkazující na statickou metodu MyDelegate d = StaticMethod; - Odkaz na instanční metodu:
// Třída s instanční metodou public class MyClass { public void InstanceMethod(int y) { } } // Vytvoření instance třídy MyClass obj = new MyClass(); // Delegát odkazující na instanční metodu MyDelegate d = obj.InstanceMethod; - Seznam volání (invocation list) více metod: Delegát v C# je ve skutečnosti vícestupňový. Může obsahovat odkazy na více metod. Při volání takového delegáta jsou volány všechny metody v seznamu v pořadí jejich přidání.
public delegate void MyDelegate(int value); public static void Method1(int z) { } public static void Method2(int w) { } // Vytvoření vícestupňového delegáta MyDelegate multiDelegate = Method1; multiDelegate += Method2; // Přidání druhé metody // Volání delegáta volá obě metody multiDelegate(10);