English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Méthode anonyme C#

Comme son nom l'indique, une méthode anonyme est une méthode sans nom. Vous pouvez définir une méthode anonyme en C# en utilisant la clé delegate (delegate) et l'attribuer à une variable de type delegate (delegate).

Dans une méthode anonyme, vous n'avez pas besoin de spécifier le type de retour, il est déduit de la déclaration de retour de la méthode.

public delegate void Print(int value);
static void Main(string[] args)
{
    Print print = delegate(int val) { 
        Console.WriteLine("À l'intérieur de la méthode anonyme. Valeur : {0}", val); 
    }
    print(100);
}
Sortie :
À l'intérieur de la méthode anonyme. Valeur :100

Méthode anonyme accédant à des variables définies dans une fonction externe

Une méthode anonyme peut accéder aux variables définies dans une fonction externe.

public delegate void Print(int value);
static void Main(string[] args)
{
    int i = 10;
    
    Print prnt = delegate(int val) {
        val +=
        Console.WriteLine("Méthode anonyme : {0}", val); 
    }
    prnt(100);
}
Sortie :
Méthode anonyme :110

Méthode anonyme en tant que paramètre

Il est également possible de transmettre une méthode anonyme à une méthode qui accepte un délégué en tant que paramètre.

Dans l'exemple suivant, PrintHelperMethod() utilise le premier paramètre Print délégué :

public delegate void Print(int value);
class Program
{
    public static void PrintHelperMethod(Print printDel, int val)
    { 
        val += 10;
        printDel(val);
    }
    static void Main(string[] args)
    {
        PrintHelperMethod(delegate(int val) { Console.WriteLine("Méthode anonyme : {0}", val); }, 100);
    }
}
Sortie :
Méthode anonyme :110

Une méthode anonyme peut être utilisée en tant que gestionnaire d'événement

saveButton.Click += delegate(Object o, EventArgs e)
{ 
    System.Windows.Forms.MessageBox.Show("Sauvegardé avec succès!"); 
}

C#3La version .0 a introduit les expressions lambda, qui fonctionnent également comme les méthodes anonymes.

Limites des méthodes anonymes

  • Il ne peut pas contenir des instructions de saut, telles que goto, break ou continue.

  • Il ne peut pas accéder aux paramètres ref ou out des méthodes externes.

  • Il ne peut pas posséder ou accéder au code non sécurisé.

  • Ne peut pas être utilisé à gauche de l'opérateur is.

 Points à retenir

  1. Les méthodes anonymes peuvent être définies en utilisant la clé delegate.

  2. Les méthodes anonymes doivent être assignées à un délégué.

  3. Les méthodes anonymes peuvent accéder aux variables ou fonctions externes.

  4. Les méthodes anonymes peuvent être transmises en tant que paramètres.

  5. Les méthodes anonymes peuvent être utilisées comme gestionnaires d'événements.