41 votes

Que signifie l'opérateur "=>" dans une propriété en C #?

que veut dire ce code?

 public bool property => method();
 

52voto

dasblinkenlight Points 264350

Il s'agit d'une propriété d'expression , une nouvelle syntaxe pour les propriétés calculées introduite dans C # 6, qui vous permet de créer des propriétés calculées de la même manière que vous créez 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;
 

14voto

mshwf Points 1911

Comme certains l'ont mentionné, il s'agit d'une nouvelle fonctionnalité introduite pour la première fois dans C # 6. Ils ont étendu son utilisation à C # 7.0 afin de l'utiliser avec les getters et les setters. Vous pouvez également utiliser la syntaxe d'expression avec des méthodes telles que:

 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?
 

10voto

stop-cran Points 2461

C'est une propriété de corps d'expression. Voir MSDN pour un 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);
 

5voto

Tinwor Points 4266

=> utilisé dans l'immobilier est une expression body. Fondamentalement, plus courte et la plus propre façon d'écrire une propriété avec seulement getter.

public bool MyProperty {
     get{
         return myMethod();
     }
}

Est traduite en

public bool MyProperty => myMethod();

Il est beaucoup plus simple et lisible, mais vous ne pouvez utiliser cet opérateur à partir de C# 6 et ici , vous trouverez de la documentation spécifique sur l'expression du corps.

3voto

Nadeem Khoury Points 563

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X