webentwicklung-frage-antwort-db.com.de

Was bedeutet der Operator "=>" in einer Eigenschaft in C #?

Was bedeutet dieser Code?

public bool property => method();
36
Sipo

Dies ist eine expression-bodied-Eigenschaft, eine neue Syntax für berechnete Eigenschaften, die in C # 6 eingeführt wurde. Mit dieser Syntax können Sie berechnete Eigenschaften auf die gleiche Weise wie mit einem Lambda-Ausdruck erstellen. Diese Syntax entspricht

public bool property {
    get {
        return method();
    }
}

Eine ähnliche Syntax funktioniert auch für Methoden:

public int TwoTimes(int number) => 2 * number;
49
dasblinkenlight

Das ist ein Ausdruck von körperlichem Eigentum. Siehe zum Beispiel MSDN . Dies ist nur eine Abkürzung für

public bool property
{
    get
    {
        return method();
    }
}

Ausdrucksfunktionen sind ebenfalls möglich:

public override string ToString() => string.Format("{0}, {1}", First, Second);
10
stop-cran

Wie bereits erwähnt, handelt es sich um eine neue Funktion, die zuerst in C # 6 eingeführt wurde. Sie hat ihre Verwendung in C # 7. erweitert. Um sie mit Get- und Setter-Funktionen zu verwenden, können Sie auch die Syntax des Ausdrucks mit folgenden Methoden verwenden:

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?
9
mshwf

=> verwendet in Eigenschaft ist ein expression body. Grundsätzlich eine kürzere und sauberere Möglichkeit, eine Eigenschaft nur mit getter zu schreiben.

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

Wird übersetzt nach

public bool MyProperty => myMethod();

Es ist viel einfacher und lesbarer, aber Sie können diesen Operator nur ab C # 6 verwenden und hier finden Sie eine spezifische Dokumentation zum Ausdruck body.

5
Tinwor

Es ist der Ausdruck körperliche Vereinfachung.

public string Text =>
  $"{TimeStamp}: {Process} - {Config} ({User})";

Referenz; https://msdn.Microsoft.com/en-us/magazine/dn802602.aspx

3
Nadeem Khoury