C#-Delegaten ähneln Funktionszeigern in C oder C++. Ein Delegat ist eine Referenztypvariable, die einen Verweis auf eine Methode enthält. Referenzen können zur Laufzeit geändert werden.
Syntax zum Deklarieren eines Delegaten -
delegate <return type> <delegate-name> <parameter list>
Jetzt sehen wir uns an, wie man einen Delegaten in C# instanziiert.
Nachdem Sie den Delegate-Typ deklariert haben, müssen Sie das neue Schlüsselwort verwenden, um das Delegate-Objekt zu erstellen und es einer bestimmten Methode zuzuordnen. Wenn Sie einen Delegaten erstellen, werden die an den neuen Ausdruck übergebenen Parameter wie ein Methodenaufruf geschrieben, jedoch ohne die Parameter der Methode.
public delegate void printString(string s); ... printString ps1 = new printString(WriteToScreen); printString ps2 = new printString(WriteToFile);
Hier ist ein Beispiel für die Deklaration und Instanziierung eines Delegaten in C# –
Live-Demonstration
using System; delegate int NumberChanger(int n); namespace DelegateAppl { class TestDelegate { static int num = 10; public static int AddNum(int p) { num += p; return num; } public static int MultNum(int q) { num *= q; return num; } public static int getNum() { return num; } static void Main(string[] args) { //create delegate instances NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); //calling the methods using the delegate objects nc1(25); Console.WriteLine("Value of Num: {0}", getNum()); nc2(5); Console.WriteLine("Value of Num: {0}", getNum()); Console.ReadKey(); } } }
Value of Num: 35 Value of Num: 175
Das obige ist der detaillierte Inhalt vonWie deklariere und instanziiere ich Delegaten in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!