Junior
Mida võib sisaldada C#-i delegaat?
sobes.tech AI
Vastus AI-lt
C# keeles on delegeet tüüp, mis esindab viiteid meetoditele kindla signatuuri (tagastustüüp ja parameetritüübid) järgi. See võib sisaldada:
- Viidet staatilisele meetodile:
// Staatiline meetod public static void StaticMethod(int x) { } // Delegeet, mis viitab staatilisele meetodile MyDelegate d = StaticMethod; - Viidet näidismetodile (instance):
// Klass, millel on näidismetod public class MyClass { public void InstanceMethod(int y) { } } // Klassist näidise loomine MyClass obj = new MyClass(); // Delegeet, mis viitab näidismetodile MyDelegate d = obj.InstanceMethod; - Mitme meetodi kutsumise nimekiri (invocation list): C#-s on delegeet tegelikult mitmekanaliline. See võib sisaldada viiteid mitmele meetodile. Kui sellist delegeeti kutsutakse, kutsutakse välja kõik nimekirja meetodid nende lisamise järjekorras.
public delegate void MyDelegate(int value); public static void Method1(int z) { } public static void Method2(int w) { } // Mitmekanalilise delegeedi loomine MyDelegate multiDelegate = Method1; multiDelegate += Method2; // Teise meetodi lisamine // Delegeedi väljakutse kutsub välja mõlemad meetodid multiDelegate(10);