共用方式為


針對屬性使用表示式主體 (IDE0025)

財產 價值
規則標識碼 IDE0025
標題 針對屬性使用表達式主體
類別 風格
子類別 語言規則(運算式主體成員)
適用的語言 C#
選項 csharp_style_expression_bodied_properties

概述

此樣式規則涉及使用 表達式主體, 與屬性的區塊主體。

選項

設定此規則的關聯選項值,以指定是否偏好屬性的表達式主體或區塊主體,若偏好表達式主體,則是否僅針對單行表達式。

如需設定選項的詳細資訊,請參閱 選項格式。

csharp_style_expression_bodied_properties

財產 價值 描述
選項名稱 csharp_樣式表達式-形式屬性
選項值 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

這個規則、IDE0025IDE0027 (使用存取子的表達式主體) 非常類似。 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

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

另請參閱