針對屬性使用表示式主體 (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;
}

但是,如果您將 設定 IDE0025csharp_style_expression_bodied_properties = true,則會進一步簡化 屬性(即使您將 設定 IDE0027csharp_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

如需詳細資訊,請參閱 如何隱藏程式代碼分析警告

另請參閱