針對屬性使用表示式主體 (IDE0025)
屬性 | 值 |
---|---|
規則識別碼 | IDE0025 |
標題 | 使用屬性的運算式主體 |
類別 | 樣式 |
子類別 | 語言規則(運算式主體成員) |
適用語言 | C# |
選項 | csharp_style_expression_bodied_properties |
概觀
選項。
設定此規則的關聯選項值,以指定慣用屬性的表達式主體或區塊主體,以及是否偏好表達式主體,是否只針對單行表達式使用它們。
如需設定選項的詳細資訊,請參閱 選項格式。
csharp_style_expression_bodied_properties
屬性 | 值 | Description |
---|---|---|
選項名稱 | csharp_style_expression_bodied_properties | |
選項值 | true |
偏好屬性的表達式主體 |
when_on_single_line |
當屬性是單行時,偏好使用表達式主體 | |
false |
偏好針對屬性使用區塊主體 | |
默認選項值 | true |
// csharp_style_expression_bodied_properties = true
public int Age => _age;
// csharp_style_expression_bodied_properties = false
public int Age { get { return _age; }}
此規則與IDE0027
這個規則 IDE0025
、 和 IDE0027 (使用存取子的表達式主體) 非常類似。 IDE0025
整體考慮 屬性,而 IDE0027
特別涉及 屬性的存取子部分。
若為唯讀屬性,其只會傳回值而不執行任何計算,如果 IDE0025
設為 csharp_style_expression_bodied_properties = false
,但 IDE0027
設為 csharp_style_expression_bodied_accessors = true
,則最後會包含如下所示的屬性:
public int TemperatureF
{
get => _temp;
}
但是,如果您將 設定 IDE0025
為 csharp_style_expression_bodied_properties = true
,則會進一步簡化 屬性(即使您將 設定 IDE0027
為 csharp_style_expression_bodied_accessors = false
):
public int TemperatureF => _temp;
對於讀寫屬性,差異會變得更加明顯,因為屬性無法以表達式主體撰寫(因為它包含一行以上)。 因此,即使 IDE0025
設定為 csharp_style_expression_bodied_properties = true
,您最終還是以大括弧結尾,也就是塊體。
下列範例示範屬性如何以兩個選項的各種組合來顯示屬性。
// csharp_style_expression_bodied_properties = false
// csharp_style_expression_bodied_accessors = true
public int TemperatureB
{
get => _temp;
}
// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = true (or false)
public int TemperatureC => _temp;
// csharp_style_expression_bodied_properties = true (or false)
// csharp_style_expression_bodied_accessors = true
public int TemperatureD
{
get => _temp;
set => _temp = value;
}
// csharp_style_expression_bodied_properties = true
// csharp_style_expression_bodied_accessors = false
public int TemperatureE
{
get
{
return _temp;
}
set
{
_temp = value;
}
}
隱藏警告
如果您想要只隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。
#pragma warning disable IDE0025
// The code that's violating the rule is on this line.
#pragma warning restore IDE0025
若要停用檔案、資料夾或項目的規則,請在組態檔中將其嚴重性設定為 。none
[*.{cs,vb}]
dotnet_diagnostic.IDE0025.severity = none
若要停用所有程式代碼樣式規則,請將組態檔中類別Style
的嚴重性設定為 none
。
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
如需詳細資訊,請參閱 如何隱藏程式代碼分析警告。