Heim >Backend-Entwicklung >PHP-Tutorial >[c#-Tutorial] Anonyme C#-Methode

[c#-Tutorial] Anonyme C#-Methode

黄舟
黄舟Original
2016-12-24 13:11:54983Durchsuche

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)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn