我的一個特性是這樣的:表達身體
public string Name
{
get{ return _name; }
set { _name = value; }
}
但ReSharper的勸告我將其改爲:
public string Name
{
get => _name;
set => _name = value;
}
如果我重構一樣,然後編譯拋出錯誤 是在一個屬性中不可能有表達式體?
我的一個特性是這樣的:表達身體
public string Name
{
get{ return _name; }
set { _name = value; }
}
但ReSharper的勸告我將其改爲:
public string Name
{
get => _name;
set => _name = value;
}
如果我重構一樣,然後編譯拋出錯誤 是在一個屬性中不可能有表達式體?
在c#6之前,你不能在屬性中使用表達式體,而必須寫這樣的東西。
public string FullName
{
get { return string.Format("{0} {1}", FirstName, LastName); }
}
在c#6中,您可以創建只讀擴展主體。
public string FullName => $"{FirstName} {LastName}";
在c#7中,您獲得了像您展示的成員的表達式主體。
public string Name
{
get => _name;
set => _name = value;
}
如果你想ReSharper的不適應這種行爲,你可以改變它:
ReSharper的>選項>代碼編輯> C#>代碼樣式
並更改以下屬性:
Code body>屬性,索引器和事件從
Expression body
到Accessors with block body
如果您只是想禁用建議,請更改上述屬性的通知狀態。
Waht錯誤你得到了嗎? –
C#7? https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7#more-expression-bodied-members –
顯然有一個版本mismatch。此功能僅適用於c#7 – Fabiano