die neuen Expression-Bodied Mitglieder mithilfe der Funktion in C# 6.0, können wir eine Methode wie folgt nehmen:Warum können wir keine ausdrucksbasierten Konstruktoren verwenden?
public void Open()
{
Console.WriteLine("Opened");
}
... und es auf einen einfachen Ausdruck mit äquivalenter Funktionalität ändern:
public void Open() => Console.WriteLine("Opened");
Dies gilt jedoch nicht für Konstrukteure. Code wie diese nicht kompiliert:
private DbManager() => Console.WriteLine("ctor");
auch nicht dies:
private DbManager() => {}
Gibt es einen Grund, warum Konstrukteure aus den Expression-bodied Mitgliedern verfügen können nicht profitieren, und muss die traditionelle Art und Weise erklärt werden ?
ich nur eine * Vermutung hier * zur Verfügung stellen kann ... im Grunde wesentlich für Konstrukteure weniger nützlich sie sind, und das Hauptgehäuse Verwendung für die Expression-bodied Mitglieder ist, wo sie * Rückgabe * etwas, während Sie in einem Konstruktor nichts zurückgeben. Beachten Sie, dass Ihr letztes Beispiel länger ist als nur den Code * ohne * das '=>' zu schreiben. –
Es gab einige Experimente um Konstruktoren, die für C# 6.0 aufgegeben wurden. Es gibt einige weitere Funktionen, die für C# 7.0 mit Konstruktoren geplant wurden, und es gab eine Entscheidung, diesmal nichts an Konstruktoren zu ändern. –