主要构造函数不再在VS2015中编译


98

在这一天之前,我可以使用主要的构造函数,例如:

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

为了做到这一点,在以前的Visual Studio CTP中,我必须将其添加到csproj文件中:

<LangVersion>Experimental</LangVersion>

无论如何,这在Visual Studio 2015预览版(带有或不带有LangVersion)中不再起作用。有人对可能发生的事情有任何想法吗?


6
他们谈论在这里
Jonesopolis

15
我是唯一认为此功能毫无意义的人吗?我从来没有找到真正的好处。
TyCobb 2014年

2
感觉有点尴尬,但是我喜欢它背后的哲学!
Matko 2014年

14
真可惜 但是一旦移到F#,就可以自由使用主构造函数。转到F#,csharpers,您的新语言功能已经在那里;)
scrwtp 2014年

3
@TyCobb,主构造函数对于依赖项注入绝对必不可少:您可以使用构造函数注入(而不是属性注入),而不必重复每个依赖项的名称(和类型)四次。
Fyodor Soikin,2015年

Answers:


143

有人对可能发生的事情有任何想法吗?

是的-主要构造函数已从C#6的计划中删除。它们很可能在以后的版本中以某种形式出现,但是它们不再在C#6中出现。

有关更多详细信息,请参见团队的“更改语言功能集”


真是可悲!他们似乎很有用。
Per Lundberg

@PerLundberg:他们也不在C#7中。我怀疑C#设计团队会重新访问C#8中的记录类型,但这并不意味着他们一定会在这里实现。
乔恩·斯基特

让我们期盼最好的结果。:)我看到他们在某些C#发布中提到了它们,这似乎是尝试解决“简单类”问题的另一种有趣方式。
Per Lundberg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.