Opérateur >= (référence C#)

Le => jeton est pris en charge sous deux formes : comme opérateur lambda et comme séparateur d’un nom de membre et l’implémentation de membre dans une définition de corps d’expression.

Opérateur lamdba

Dans les expressions lambda, l’opérateur lambda => sépare les paramètres d’entrée sur le côté gauche du corps lambda du côté droit.

L’exemple suivant utilise la fonctionnalité LINQ avec la syntaxe de méthode pour illustrer l’utilisation d’expressions lambda :

string[] words = { "bot", "apple", "apricot" };
int minimalLength = words
  .Where(w => w.StartsWith("a"))
  .Min(w => w.Length);
Console.WriteLine(minimalLength);   // output: 5

int[] numbers = { 4, 7, 10 };
int product = numbers.Aggregate(1, (interim, next) => interim * next);
Console.WriteLine(product);   // output: 280

Les paramètres d’entrée d’une expression lambda sont fortement typés au moment de la compilation. Lorsque le compilateur peut déduire les types de paramètres d’entrée, comme dans l’exemple précédent, vous pouvez omettre des déclarations de type. Si vous devez spécifier le type des paramètres d’entrée, vous devez le faire pour chaque paramètre, comme le montre l’exemple suivant :

int[] numbers = { 4, 7, 10 };
int product = numbers.Aggregate(1, (int interim, int next) => interim * next);
Console.WriteLine(product);   // output: 280

L’exemple suivant montre comment définir une expression lambda sans paramètres d’entrée :

Func<string> greet = () => "Hello, World!";
Console.WriteLine(greet());

Pour plus d’informations, consultez Expressions lambda.

Définition de corps d’expression

La syntaxe générale d’une définition de corps d’expression est la suivante :

member => expression;

expression est une expression valide. Le type de retour de expression doit être implicitement convertible en type de retour du membre. Si le type de retour du membre est void ou si le membre est un constructeur, un finaliseur ou un accesseur de propriété ou d’indexeur set , expression doit être une expression d’instruction. Étant donné que le résultat de l’expression est ignoré, le type de retour de cette expression peut être n’importe quel type.

L’exemple suivant montre une définition de corps d’expression pour une méthode Person.ToString :

public override string ToString() => $"{fname} {lname}".Trim();

Il s’agit d’une version raccourcie de la définition de méthode suivante :

public override string ToString()
{
   return $"{fname} {lname}".Trim();
}

Les définitions de corps d’expression pour les méthodes, les opérateurs et les propriétés en lecture seule sont prises en charge à partir de C# 6. Les définitions de corps d’expression pour les constructeurs, les finaliseurs et les accesseurs de propriété et d’indexeur sont pris en charge à compter de C# 7,0.

Pour plus d’informations, consultez Membres expression-bodied.

Capacité de surcharge de l’opérateur

L’opérateur => ne peut pas être surchargé.

spécification du langage C#

Pour plus d’informations sur l’opérateur lambda, consultez la section expressions de fonction anonymes de la spécification du langage C#.

Voir aussi