Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

C# - Méthodes anonymes

Nous avons expliqué que les délégués sont utilisés pour référencer toutes les méthodes qui ont la même signature que celle du délégué. En d'autres termes, vous pouvez appeler une méthode qui peut être référencée par un délégué à l'aide de cet objet délégué.

Méthodes anonymes fournissent une technique pour passer un bloc de code en tant que paramètre délégué. Les méthodes anonymes sont les méthodes sans nom, juste le corps.

Vous n'avez pas besoin de spécifier le type de retour dans une méthode anonyme; il est déduit de l'instruction return dans le corps de la méthode.

Écrire une méthode anonyme

Les méthodes anonymes sont déclarées à la création de l'instance déléguée, avec un délégué mot-clé. Par exemple,

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

Le bloc de code Console.WriteLine("Anonymous Method :{0}", x); est le corps de la méthode anonyme.

Le délégué peut être appelé à la fois avec des méthodes anonymes et des méthodes nommées de la même manière, c'est-à-dire en passant les paramètres de la méthode à l'objet délégué.

Par exemple,

nc(10);

Exemple

L'exemple suivant illustre le concept −

Démo en direct
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();
      }
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −

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

Langue C

  1. Classe abstraite et méthode C#
  2. Classe partielle C# et méthode partielle
  3. Classe et méthode scellées C#
  4. Surcharge de méthode C#
  5. Fonction Python Anonyme/Lambda
  6. Classe anonyme Java
  7. Java 8 - Méthodes par défaut
  8. C# - Méthodes
  9. C# - Délégués