Anonyme C#-Methoden
Wir haben bereits erwähnt, dass Delegaten verwendet werden, um auf Methoden mit derselben Bezeichnung zu verweisen. Mit anderen Worten: Sie verwenden ein Delegatobjekt, um Methoden aufzurufen, auf die der Delegat verweisen kann.
Anonyme Methoden bieten eine Technik zum Übergeben von Codeblöcken als Delegate-Parameter. Anonyme Methoden sind Methoden, die keinen Namen, sondern nur einen Körper haben.
Bei anonymen Methoden müssen Sie den Rückgabetyp nicht angeben, er wird aus der Return-Anweisung im Methodenkörper abgeleitet.
Syntax zum Schreiben anonymer Methoden
Anonyme Methoden werden durch Erstellen einer Delegate-Instanz mit dem Schlüsselwort „delegate“ deklariert. Beispiel:
delegate void NumberChanger(int n); ... NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); };
Codeblock Console.WriteLine("Anonyme Methode: {0}", x); ist der Hauptteil der anonymen Methode.
Ein Delegate kann über eine anonyme Methode oder eine benannte Methode aufgerufen werden, d. h. durch Übergabe von Methodenargumenten an das Delegate-Objekt.
Zum Beispiel:
nc(10);
Beispiel
Das folgende Beispiel demonstriert das Konzept anonymer Methoden:
using System; delegate void NumberChanger(int n); namespace DelegateAppl { class TestDelegate { static int num = 10; public static void AddNum(int p) { num += p; Console.WriteLine("Named Method: {0}", num); } public static void MultNum(int q) { num *= q; Console.WriteLine("Named Method: {0}", num); } public static int getNum() { return num; } static void Main(string[] args) { // 使用匿名方法创建委托实例 NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); }; // 使用匿名方法调用委托 nc(10); // 使用命名方法实例化委托 nc = new NumberChanger(AddNum); // 使用命名方法调用委托 nc(5); // 使用另一个命名方法实例化委托 nc = new NumberChanger(MultNum); // 使用命名方法调用委托 nc(2); Console.ReadKey(); } } }
Wenn der obige Code kompiliert wird und Bei der Ausführung werden die folgenden Ergebnisse erzeugt:
Anonymous Method: 10 Named Method: 15 Named Method: 30
Das Obige ist der Inhalt der anonymen C#-Methode [c#-Tutorial] Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www. php.cn)!