我得到的代码的属性如下:
public bool Expanded { get => expanded; set => expanded = value; }
在一台机器上它工作正常但在另一台机器上它全部用红色突出显示('并非所有代码路径都返回一个值')
当我像这样重写它时它工作正常:
public bool Expanded
{
get { return expanded; }
set { expanded = value; }
}
但我不想重写它。
在两台机器上我都使用.NET Framework 4.7.1
你有什么想法可能有什么不对吗?
答案 0 :(得分:6)
在c#7.0中添加了表达体的属性访问器,在c#6.0中,您只能将表达体用于方法。
自动属性初始值设定项(int Count {get;} = 1;
)不应与表达式属性(int Count {get => return 1;}
)混淆。
C#6为成员函数和只读属性引入了表达式成员 C#7扩展了可以实现的允许成员 表达式。在C#7中,您可以实现构造函数,终结器, 并在属性和索引器上获取和设置访问者。
(强调我的)