【问题标题】:Why is declaration expression dropped in C# 6?为什么在 C# 6 中删除了声明表达式?
【发布时间】:2015-10-16 22:01:59
【问题描述】:

在 C# 6 的预览版中,Microsoft 引入了用于声明内联参数的语法糖,如本文所示

http://odetocode.com/blogs/scott/archive/2014/09/15/c-6-0-features-part-3-declaration-expressions.aspx

有人知道为什么在 .NET 4.6 的发行版中删除了此功能吗?

【问题讨论】:

    标签: c#-6.0


    【解决方案1】:

    解释在这个codeplex主题中。

    大家好,

    随着我们对更新 C# 和 Visual Basic 体验的长期探索进入最后阶段,我们不得不围绕一组语言特性做出一些艰难的决定,以便将其纳入下一版本的语言。

    这些决策主要基于成本与风险。您在预览中看到的一些功能仍然需要大量的下游工作才能在 IDE、调试器等中得到支持,并且还需要在编译器本身中获得高质量。

    正如您之前可能听过我所说,语言功能是此版本中的次要考虑因素。主要目标是交付 Roslyn 价值主张的首个版本:在 IDE 中深入理解语言,并通过强大而全面的 API 提供给所有人。为了很好地实现这一点,我们需要稍微减少对语言功能的需求。

    我们正在削减的功能是:

    • C# 中的主构造函数(以及结构中的初始化程序)
    • C# 中的声明表达式/VB 中的 Out 参数

    它们的特点都是仍有大量下游工作剩余。它们也是我们认为未来更大故事的潜在开端的功能:主构造函数可能会成长为成熟的记录功能,而声明表达式将构成模式匹配和解构工具的基石强>。现在,这些功能将在以后的版本中一起考虑。作为一线希望,我们可以从整体上设计这个连续体,而不是在以后的阶段可能会过度束缚我们的手脚的步骤。

    说了这么多,我很遗憾放弃这些功能,我知道你们中的许多人也是如此。您为这两个功能提供了非常有价值的反馈,这些学习将直接用于我们未来的设计工作。对于这次令人难以置信的订婚,我感激不尽!我也希望这次你喜欢看到更多的“内部运作”,即使当你看到我们计划中的事情来来去去时它会导致失望。您增加的参与对我们来说肯定是有益的,而且——我们希望! – 帮助提高了我们决策的质量和及时性。

    还有一些好消息:字符串插值(尚未预览)目前正在寻求实现。您应该会看到它首先出现在 C# 中(我们已经对我们的方法进行了原型化) ,稍后在 VB 中。

    再次感谢!

    【讨论】:

      【解决方案2】:

      原因就在https://github.com/dotnet/roslyn/issues 的某个地方。

      但主要原因是它已完成,将其纳入 C#6 的决定可能会限制为 C#7 及更高版本计划的功能。

      【讨论】:

      • 能否分享您所指问题的链接?
      • 我不记得它在哪里了。它可能在roslyn.codeplex.com 或 http:github.com/dotnet/Roslyn/issues/。
      猜你喜欢
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      相关资源
      最近更新 更多