Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C# Anonyme Methoden: Vereinfachung der Delegate-Nutzung

Was sind anonyme Methoden?

Wir haben besprochen, dass Delegates verwendet werden, um Methoden zu referenzieren, die dieselbe Signatur wie der Delegate haben. Mit anderen Worten: Sie können eine Methode, die von einem Delegate referenziert werden kann, mithilfe dieses Delegate-Objekts aufrufen.

Anonyme Methoden bieten eine Technik, um einen Codeblock als Delegate-Parameter zu übergeben. Anonyme Methoden sind Methoden ohne Namen – sie bestehen nur aus dem Rumpf.

Sie müssen den Rückgabetyp in einer anonymen Methode nicht angeben; er wird aus der return-Anweisung im Methodenrumpf abgeleitet.

Schreiben einer anonymen Methode

Anonyme Methoden werden bei der Erstellung der Delegate-Instanz mit dem Schlüsselwort delegate deklariert. Zum Beispiel:

delegate void NumberChanger(int n);
...
NumberChanger nc = delegate(int x) {
    Console.WriteLine("Anonymous Method: {0}", x);
};

Der Codeblock Console.WriteLine("Anonymous Method: {0}", x); ist der Rumpf der anonymen Methode.

Der Delegate kann sowohl mit anonymen als auch mit benannten Methoden auf die gleiche Weise aufgerufen werden – indem die Methodenparameter an das Delegate-Objekt übergeben werden.

Beispiel:

nc(10);

Beispiel

Das folgende Beispiel demonstriert das Konzept:

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) {
            // Delegate-Instanzen mit anonymer Methode erstellen
            NumberChanger nc = delegate(int x) {
                Console.WriteLine("Anonymous Method: {0}", x);
            };
            // Delegate mit anonymer Methode aufrufen
            nc(10);
            // Delegate mit benannter Methode instanziieren
            nc = new NumberChanger(AddNum);
            // Delegate mit benannter Methode aufrufen
            nc(5);
            // Delegate mit einer anderen benannten Methode instanziieren
            nc = new NumberChanger(MultNum);
            // Delegate mit benannter Methode aufrufen
            nc(2);
            Console.ReadKey();
        }
    }
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er folgendes Ergebnis:

Anonymous Method: 10
Named Method: 15
Named Method: 30

C Sprache

  1. C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
  2. C# Partielle Klassen und Methoden verstehen
  3. Versiegelte Klassen und Methoden in C# meistern
  4. Methodenüberladung in C# meistern: Konzepte, Beispiele und Best Practices
  5. Python Lambda-Funktionen: Praxisleitfaden zu anonymen Funktionen
  6. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  7. Java 8 Default Methods: Interfaces mit Implementierung & Backward Compatibility
  8. C# Methoden: Definieren, Aufrufen, Rekursion & Parameterübergabe
  9. C# Delegates verstehen: Ein Leitfaden zu Funktionsreferenzen und Events
  10. EPA Method 21: Umfassendes Lecksuch- & Reparaturprotokoll