属性在一台机器上工作正常但它在另一台机器上出错

时间:2018-04-09 11:48:39

标签: c# properties c#-6.0

我得到的代码的属性如下:

public bool Expanded { get => expanded; set => expanded = value; }

在一台机器上它工作正常但在另一台机器上它全部用红色突出显示('并非所有代码路径都返回一个值')

当我像这样重写它时它工作正常:

public bool Expanded
{
    get { return expanded; }
    set { expanded = value; }
}

但我不想重写它。

在两台机器上我都使用.NET Framework 4.7.1

你有什么想法可能有什么不对吗?

1 个答案:

答案 0 :(得分:6)

在c#7.0中添加了表达体的属性访问器,在c#6.0中,您只能将表达体用于方法。
自动属性初始值设定项(int Count {get;} = 1;)不应与表达式属性(int Count {get => return 1;})混淆。

来自What's new in C# 7

  

C#6为成员函数和只读属性引入了表达式成员   C#7扩展了可以实现的允许成员   表达式。在C#7中,您可以实现构造函数,终结器,   并在属性和索引器上获取和设置访问者。

(强调我的)