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

Wir haben besprochen, dass Delegaten verwendet werden, um auf alle Methoden zu verweisen, die dieselbe Signatur wie die des Delegaten haben. Mit anderen Worten, Sie können eine Methode aufrufen, auf die von einem Delegaten verwiesen werden kann, indem Sie dieses Delegate-Objekt verwenden.

Anonyme Methoden bieten eine Technik zum Übergeben eines Codeblocks als Delegate-Parameter. Anonyme Methoden sind Methoden ohne Namen, nur der Körper.

Sie müssen den Rückgabetyp nicht in einer anonymen Methode angeben; es wird von der return-Anweisung innerhalb des Methodenkörpers abgeleitet.

Schreiben einer anonymen Methode

Anonyme Methoden werden bei der Erstellung der Delegatinstanz mit einem Delegaten deklariert Stichwort. 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 Hauptteil der anonymen Methode.

Der Delegat könnte sowohl mit anonymen Methoden als auch mit benannten Methoden auf die gleiche Weise aufgerufen werden, d. h. durch Übergabe der Methodenparameter an das Delegate-Objekt.

Zum Beispiel

nc(10);

Beispiel

Das folgende Beispiel demonstriert das Konzept −

Live-Demo
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) {
         //create delegate instances using anonymous method
         NumberChanger nc = delegate(int x) {
            Console.WriteLine("Anonymous Method: {0}", x);
         };
         
         //calling the delegate using the anonymous method 
         nc(10);
         
         //instantiating the delegate using the named methods 
         nc =  new NumberChanger(AddNum);
         
         //calling the delegate using the named methods 
         nc(5);
         
         //instantiating the delegate using another named methods 
         nc =  new NumberChanger(MultNum);
         
         //calling the delegate using the named methods 
         nc(2);
         Console.ReadKey();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis −

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

C Sprache

  1. Abstrakte C#-Klasse und -Methode
  2. C# Teilklasse und Teilmethode
  3. Versiegelte C#-Klasse und -Methode
  4. Überladen von C#-Methoden
  5. Anonyme Python/Lambda-Funktion
  6. Anonyme Java-Klasse
  7. Java 8 - Standardmethoden
  8. C# - Methoden
  9. C# - Delegaten
  10. Was ist EPA-Methode 21?