Junior
Mit tartalmazhat egy delegált C#-ban?
sobes.tech MI
Válasz az MI-től
A C#-ban a delegate egy típus, amely a meghatározott aláírással (visszatérési típus és paraméter típusok) rendelkező módszerekre mutató hivatkozásokat reprezentál. Tartalmazhat:
- Statikus módszerre mutató hivatkozás:
// Statikus módszer public static void StaticMethod(int x) { } // Delegát, amely statikus módszerre mutat MyDelegate d = StaticMethod; - Példány módszerre mutató hivatkozás:
// Osztály példány módszerrel public class MyClass { public void InstanceMethod(int y) { } } // Osztály példányának létrehozása MyClass obj = new MyClass(); // Delegát, amely példány módszerre mutat MyDelegate d = obj.InstanceMethod; - Több módszerből álló hívási lista (invocation list): A C#-ban a delegate valójában többcsatornás. Tartalmazhat több módszerre mutató hivatkozásokat. Amikor ilyen delegált hívás történik, minden listaelemet meghívnak a hozzáadás sorrendjében.
public delegate void MyDelegate(int value); public static void Method1(int z) { } public static void Method2(int w) { } // Többcsatornás delegát létrehozása MyDelegate multiDelegate = Method1; multiDelegate += Method2; // Második módszer hozzáadása // A delegált hívás mindkét módszert meghívja multiDelegate(10);