Maison  >  Article  >  développement back-end  >  Que sont les expressions Lambda en C# ?

Que sont les expressions Lambda en C# ?

王林
王林avant
2023-09-08 14:25:15608parcourir

Que sont les expressions Lambda en C# ?

Les expressions Lambda sont un meilleur moyen de représenter les méthodes anonymes. Les méthodes anonymes et les expressions lambda vous permettent de définir des implémentations de méthodes en ligne. Cependant, les méthodes anonymes nécessitent explicitement que vous définissiez les types de paramètres et le type de retour de la méthode.

Une expression avec une expression comme corps lambda : (input−parameters) => Expression

Une instruction lambda avec un bloc d'instructions comme corps : (input−parameters) => { }

Toute expression lambda peut être convertie en type délégué. Le type de délégué vers lequel une expression lambda peut être convertie est défini par les types de ses paramètres et de sa valeur de retour. Si l'expression lambda ne renvoie pas de valeur, elle peut être convertie en l'un des types de délégué Action ; sinon, elle peut être convertie en l'un des types de délégué Func.

static void Main(string[] args){
   Func<int, int> square = x => x * x;
   Console.WriteLine(square(5));
   Console.ReadLine();
}

=> Une expression lambda avec une expression à droite de l'opérateur est appelée une expression lambda. L'expression lambda renvoie le résultat d'une expression et prend la forme de base suivante

Action line = () => Console.WriteLine();

Funccube = x => x * x * x; (x, y) => x == y;

Func isTooLong = (int x, string s) => s.Length > x;

En C# 7.0, le langage C# fournit une prise en charge intégrée des tuples. Vous pouvez fournir un tuple comme argument à une expression lambda, et votre expression lambda peut également renvoyer un tuple.

Les variables introduites dans les expressions lambda ne sont pas visibles dans la méthode englobante.

Les expressions Lambda ne peuvent pas capturer les paramètres in, ref ou out directement à partir de la méthode englobante.

Une instruction return dans une expression lambda ne provoque pas le retour de la méthode englobante.

Si la cible de l'instruction jump est en dehors du bloc d'expression lambda, l'expression lambda ne peut pas contenir d'instruction goto, break ou continue. C'est également une erreur d'utiliser une instruction de saut en dehors d'un bloc d'expression lambda si la cible se trouve à l'intérieur du bloc d'expression lambda.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer