Junior
Šta može sadržavati delegat u C#?
sobes.tech АИ
Одговор од АИ
Delegat u C# je tip koji predstavlja reference na metode sa specifičnom potpisom (tip povratne vrednosti i tipovi parametara). Može sadržavati:
- Referencu na statičku metodu:
// Statička metoda public static void StaticMethod(int x) { } // Delegat koji referencira statičku metodu MyDelegate d = StaticMethod; - Referencu na instancu metode:
// Klasa sa metodom instance public class MyClass { public void InstanceMethod(int y) { } } // Kreiranje instance klase MyClass obj = new MyClass(); // Delegat koji referencira metodu instance MyDelegate d = obj.InstanceMethod; - Lista poziva (invocation list) više metoda: Delegat u C# je zapravo višekanalni. Može sadržavati reference na više metoda. Pri pozivu takvog delegata, pozivaju se sve metode u listi redom po dodavanju.
public delegate void MyDelegate(int value); public static void Method1(int z) { } public static void Method2(int w) { } // Kreiranje višekanalnog delegata MyDelegate multiDelegate = Method1; multiDelegate += Method2; // Dodavanje druge metode // Poziv delegata poziva obe metode multiDelegate(10);