【发布时间】:2015-01-27 10:42:00
【问题描述】:
使用 C# 6.0 中新的 Expression-Bodied Members 功能,我们可以采用如下方法:
public void Open()
{
Console.WriteLine("Opened");
}
...并将其更改为具有等效功能的简单表达式:
public void Open() => Console.WriteLine("Opened");
但是,对于构造函数来说,情况并非如此。这样的代码无法编译:
private DbManager() => Console.WriteLine("ctor");
这也不是:
private DbManager() => {}
构造函数有什么理由不能从表达式体成员功能中受益,必须以传统方式声明?
【问题讨论】:
-
我只能在这里提供一个猜测...基本上它们对构造函数的用处要小得多,而表达式主体成员的主要用例是它们 return 一些东西,而在构造函数中你没有返回任何东西。请注意,您的最后一个示例比仅编写代码没有
=>更冗长。 -
围绕构造函数的一些实验被 C# 6.0 放弃了。为 C# 7.0 计划了更多涉及构造函数的功能,并且决定这次不更改任何关于构造函数的内容。
标签: c# c#-6.0 visual-studio-2015