Que veut dire ce code?
public bool property => method();
Ceci est une propriété-expression-body, une nouvelle syntaxe pour les propriétés calculées introduite en C # 6, qui vous permet de créer des propriétés calculées de la même manière que vous créeriez une expression lambda. Cette syntaxe est équivalente à
public bool property {
get {
return method();
}
}
Une syntaxe similaire fonctionne également pour les méthodes:
public int TwoTimes(int number) => 2 * number;
C'est une propriété de corps d'expression. Voir MSDN par exemple. Ceci est juste un raccourci pour
public bool property
{
get
{
return method();
}
}
Les fonctions d'expression sont également possibles:
public override string ToString() => string.Format("{0}, {1}", First, Second);
Comme certains l'ont mentionné, il s'agit d'une nouvelle fonctionnalité introduite d'abord dans C # 6. Ils ont étendu son utilisation dans C # 7. pour l'utiliser avec les getters et les setters. Vous pouvez également utiliser la syntaxe avec l'expression avec des méthodes comme celle-ci:
static bool TheUgly(int a, int b)
{
if (a > b)
return true;
else
return false;
}
static bool TheNormal(int a, int b)
{
return a > b;
}
static bool TheShort(int a, int b) => a > b; //beautiful, isn't it?
=>
utilisé dans la propriété est un expression body
. Fondamentalement, une méthode plus courte et plus propre pour écrire une propriété avec seulement getter
.
public bool MyProperty {
get{
return myMethod();
}
}
Est traduit en
public bool MyProperty => myMethod();
C'est beaucoup plus simple et lisible, mais vous ne pouvez utiliser cet opérateur que depuis C # 6 et ici vous trouverez une documentation spécifique sur le corps de l'expression.
C'est l'expression simplification corsée.
public string Text =>
$"{TimeStamp}: {Process} - {Config} ({User})";
Référence; https://msdn.Microsoft.com/en-us/magazine/dn802602.aspx