Первинні конструктори більше не збираються у VS2015


98

До цього дня я міг скористатися первинними конструкторами, такими як:

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

Щоб зробити це, у попередньому CTP Visual Studio мені довелося додати це до csproj-файлу:

<LangVersion>Experimental</LangVersion>

Так чи інакше, це вже не працює в Preview Visual Studio 2015 (з або без LangVersion). Хтось має уявлення про те, що може бути?


6
Вони кажуть про видалення його тут
Jonesopolis

15
Чи я єдиний, хто вважав цю особливість безглуздою? Я ніколи не знайшов фактичної користі для цього.
TyCobb

2
Це було трохи незручно, але мені подобається філософія!
Матько

14
Це ганьба. Але ви можете користуватися первинними конструкторами вільно, перейшовши на F #. Перейдіть до F #, csharpers, ваші нові мовні функції вже є;)
scrwtp

3
@TyCobb, первинні конструктори абсолютно необхідні при введенні залежності: ви можете використовувати конструктор введення (на відміну від властивостей введення), не повторюючи назву (та тип) кожної залежності чотири рази.
Федір Сойкін

Відповіді:


143

Хтось має уявлення про те, що може бути?

Так - первинні конструктори були вилучені з планів на C # 6. Вони цілком можуть відобразитися в якійсь формі в більш пізній версії, але вони вже не в C # 6.

Детальнішу інформацію див. У публікації команди "Зміни у наборі функцій мови" .


Це справді сумно! Вони здалися досить корисними.
Пер Лундберг

@PerLundberg: Вони теж не в C # 7. Я підозрюю, що команда дизайнерів C # перегляне типи записів на C # 8, але це не означає, що вони там обов'язково зроблять.
Джон Скіт

Будемо сподіватися на краще. :) Я бачив, як вони згадуються в одній публікації на C # так, і це виглядало як інший цікавий спосіб спробувати вирішити проблему "простого класу".
Пер Лундберг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.