Les constructeurs principaux ne compilent plus dans VS2015


98

Jusqu'à ce jour, je pouvais utiliser des constructeurs primaires, tels que:

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

Pour pouvoir le faire, dans le CTP Visual Studio précédent, je devais ajouter ceci au fichier csproj:

<LangVersion>Experimental</LangVersion>

Quoi qu'il en soit, cela ne fonctionne plus dans l'aperçu de Visual Studio 2015 (avec ou sans LangVersion). Quelqu'un a-t-il des idées sur ce qui pourrait se passer?


6
Ils parlent de le supprimer ici
Jonesopolis

15
Suis-je le seul à penser que cette fonctionnalité était inutile? Je n'ai jamais trouvé le service médical rendu.
TyCobb

2
Cela me semblait un peu gênant, mais j'aime la philosophie derrière cela!
Matko

14
C'est une honte. Mais vous pouvez utiliser librement les constructeurs primaires une fois que vous passez à F #. Passez à F #, csharpers, vos nouvelles fonctionnalités de langage sont déjà là;)
scrwtp

3
@TyCobb, les constructeurs primaires sont absolument essentiels avec l'injection de dépendances: vous pouvez utiliser l'injection de constructeur (par opposition à l'injection de propriété) sans répéter le nom (et le type) de chaque dépendance quatre fois.
Fyodor Soikin

Réponses:


143

Quelqu'un a-t-il des idées sur ce qui pourrait se passer?

Oui, les constructeurs primaires ont été supprimés des plans pour C # 6. Ils pourraient bien faire une apparition sous une forme ou une autre dans une version ultérieure, mais ils ne sont plus en C # 6.

Pour plus de détails, consultez le message «Modifications apportées à l'ensemble des fonctionnalités linguistiques» de l'équipe.


C'est vraiment triste! Ils semblaient très utiles.
Per Lundberg

@PerLundberg: Ils ne sont pas non plus en C # 7. Je soupçonne que l'équipe de conception C # revisitera les types d'enregistrements en C # 8, mais cela ne signifie pas qu'elle y parviendra définitivement.
Jon Skeet le

Esperons le meilleur. :) Je les ai vus mentionnés dans certains messages C # oui, et cela ressemblait à une autre façon intéressante d'essayer de résoudre le problème de la "classe simple".
Per Lundberg
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.