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

98

直到今天,我仍然可以使用主构造函数,例如:

public class Test(string text)
{
    private string mText = text;
}
为了能够实现这一点,在之前的 Visual Studio CTP 中,我不得不将以下内容添加到 csproj 文件中:
<LangVersion>Experimental</LangVersion>

无论如何,在Visual Studio 2015 Preview中(无论是否使用LangVersion)已经不再起作用。有人知道可能出了什么问题吗?


6
他们在此处谈论将其移除。 (https://roslyn.codeplex.com/discussions/568820) - Jonesopolis
15
我是唯一一个认为这个功能毫无意义的人吗?我从未找到它的实际好处。 - TyCobb
2
感觉有点尴尬,但我喜欢它背后的哲学! - Matko
14
很遗憾。但是一旦你转移到F#,你就可以自由地使用原始构造函数了。转移到F#吧,csharpers,你们的新语言特性已经准备好了;) - scrwtp
3
@TyCobb,主要构造函数在依赖注入中非常重要:您可以使用构造函数注入(而不是属性注入),而无需重复每个依赖项的名称(和类型)四次。 - Fyodor Soikin
显示剩余2条评论
1个回答

144

有人对正在发生的事情有任何想法吗?

是的 - C# 6 的计划中已经取消了主构造函数。它们可能会以某种形式出现在以后的版本中,但它们不再是 C# 6 中的一部分。

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


真的很遗憾!它们看起来非常有用。 - Per Lundberg
@PerLundberg:它们也不在C# 7中。我猜测C# 设计团队会在C# 8中重审记录类型,但这并不意味着它们一定会被包含在其中。 - Jon Skeet
让我们抱最好的希望。 :) 我在一些 C# 的帖子中看到了它们的提及,似乎是另一种有趣的尝试来解决“简单类”问题。 - Per Lundberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接