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.