Lambda en C#

Une expression Lambda c’est une fonctionne anonyme, qui peut être utilisé pour créer par exemple ses delegates. C’est-à-dire une fonctionne se transforme en une variable. En C# on utilise l’opérateur => pour indiquer une expression lambda.
Dans un dernier article autour de delegates on a vu qu’il y a Action<T> et Func<T>, ce qu’on peut utiliser pour enregistrer une méthode dans une variable, si la signature (la valeur retournée et la liste des paramètres) et la même chose que la signature du delegate.

namespace Lambda
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<int, int, double> mult = Multiply;

            var product = mult(3, 4);

            Console.WriteLine(product);

            Console.ReadKey();
        }

        private static double Multiply(int i, int j)
        {
            return i + j;
        }
    }
}

Si on ne veut qu’utiliser une méthode une seule fois par exemple, on peut utiliser une méthode anonyme :

namespace Lambda
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<int, int, double> mult = delegate(int i, int j)
            {
                return i + j;
            };

            Console.WriteLine(mult(3,4));

            Console.ReadKey();
        }
    }
}

On peut maintenant créer une expression lambda, on simplement raccourci le delegate en ne pas utilisant le mot clé delegate.

Func<int, int, double> mult = (int i, int j) =>
{
    return i + j;
};

Mais bien sûr on peut le raccourcir un peu plus :

Func<int, int, double> mult = (i, j) => i + j;

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *