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?


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.