Primärkonstruktoren werden in VS2015 nicht mehr kompiliert

98

Bis heute konnte ich Primärkonstruktoren verwenden, wie zum Beispiel:

public class Test(string text)
{
    private string mText = text;
}

Um dies zu tun, musste ich dies im vorherigen Visual Studio CTP der csproj-Datei hinzufügen:

<LangVersion>Experimental</LangVersion>

In der Visual Studio 2015-Vorschau (mit oder ohne LangVersion) funktioniert dies jedoch nicht mehr . Hat jemand irgendwelche Ideen darüber, was los sein könnte?

Matko
quelle
6
Sie reden darüber, es hier zu
Jonesopolis
15
Bin ich der einzige, der diese Funktion für sinnlos hielt? Ich habe nie den tatsächlichen Nutzen dafür gefunden.
TyCobb
2
Es fühlte sich ein bisschen unangenehm an, aber ich mag die Philosophie dahinter!
Matko
14
Das ist eine Schande. Sie können Primärkonstruktoren jedoch frei verwenden, sobald Sie zu F # wechseln. Gehen Sie zu F #, csharpers, Ihre neuen Sprachfunktionen sind bereits vorhanden;)
scrwtp
3
@TyCobb, Primärkonstruktoren sind bei der Abhängigkeitsinjektion unbedingt erforderlich: Sie können die Konstruktorinjektion (im Gegensatz zur Eigenschaftsinjektion) verwenden, ohne den Namen (und den Typ) jeder Abhängigkeit viermal zu wiederholen.
Fjodor Soikin

Antworten:

143

Hat jemand irgendwelche Ideen darüber, was los sein könnte?

Yup - Primärkonstruktoren wurden aus den Plänen für C # 6 entfernt. Sie werden möglicherweise in einer späteren Version in irgendeiner Form angezeigt, aber sie sind nicht mehr in C # 6.

Siehe die „Änderungen an die Sprache Feature - Set“ Post aus dem Team für weitere Details.

Jon Skeet
quelle
Das ist wirklich traurig! Sie schienen ziemlich nützlich zu sein.
Per Lundberg
@PerLundberg: Sie sind auch nicht in C # 7. Ich vermute, dass das C # -Design-Team die Datensatztypen in C # 8 erneut besuchen wird, aber das bedeutet nicht, dass sie es dort definitiv schaffen werden.
Jon Skeet
Lass uns auf das Beste hoffen. :) Ich habe gesehen, dass sie in einigen C # -Postings erwähnt wurden, ja, und es sah nach einer anderen interessanten Möglichkeit aus, das Problem der "einfachen Klasse" zu lösen.
Per Lundberg