将属性更改为基于ReSharper的表达式合并会导致错误?

nsh*_*ish 3 c# resharper properties expression-body

我的其中一个属性如下所示:

public string Name
{
 get{ return _name; }
 set { _name = value; }
}
Run Code Online (Sandbox Code Playgroud)

但是ReSharper建议我将其更改为:

public string Name
{
 get => _name;
 set => _name = value;
}
Run Code Online (Sandbox Code Playgroud)

如果我这样重构,则编译会引发错误是否无法在Property中包含表达式主体?

NtF*_*reX 5

在C#6之前,您不能在属性中使用表达式主体,而必须编写类似这样的内容。

public string FullName
{
    get { return string.Format("{0} {1}", FirstName, LastName); }
}
Run Code Online (Sandbox Code Playgroud)

在c#6中,您可以创建只读表达式主体。

public string FullName => $"{FirstName} {LastName}";
Run Code Online (Sandbox Code Playgroud)

在c#7中,您为显示的成员获得了表达主体。

public string Name
{
    get => _name;
    set => _name = value;
}
Run Code Online (Sandbox Code Playgroud)