共用方式為


移除不必要的隱藏 (IDE0079)

財產 價值
規則標識碼 IDE0079
標題 拿掉不必要的隱藏
類別 CodeQuality
子類別 不必要的程式代碼規則 (隱藏喜好設定)
適用的語言 C# 和 Visual Basic
選項 dotnet_remove_unnecessary_suppression_exclusions

概述

此規則旗標會 pragma 和來源中的 SuppressMessageAttribute 屬性歸併。

來源隱藏會隱藏特定位置的編譯程式和分析器規則違規,但不在特定原始程式碼的其他部分。 您通常會使用它們來隱藏不想要修正的誤判或較不重要的違規。 不過,隱藏通常變得過時。 如果修正規則以防止誤判,或重構程序代碼,並在這樣做時轉譯隱藏備援,就會發生這種情況。 此規則有助於識別可移除的備援隱藏。

注意

即使您 在組建上啟用程式代碼樣式規則,也不會啟用此規則。 它只會出現在 Visual Studio 編輯器中。

using System.Diagnostics.CodeAnalysis;

class C1
{
    // Necessary pragma suppression
#pragma warning disable IDE0051 // IDE0051: Remove unused member
    private int UnusedMethod() => 0;
#pragma warning restore IDE0051

    // IDE0079: Unnecessary pragma suppression
#pragma warning disable IDE0051 // IDE0051: Remove unused member
    private int UsedMethod() => 0;
#pragma warning restore IDE0051

    public int PublicMethod() => UsedMethod();
}

class C2
{
    // Necessary SuppressMessage attribute suppression
    [SuppressMessage("CodeQuality", "IDE0051:Remove unused private members", Justification = "<Pending>")]
    private int _unusedField;

    // IDE0079: Unnecessary SuppressMessage attribute suppression
    [SuppressMessage("CodeQuality", "IDE0051:Remove unused private members", Justification = "<Pending>")]
    private int _usedField;

    public int PublicMethod2() => _usedField;
}

選項

選項會指定您希望規則強制執行的行為。 如需設定選項的相關資訊,請參閱 選項格式

注意

option_name = value:severity 格式設定嚴重性不適用於 dotnet_remove_unnecessary_suppression_exclusions 選項,因此應避免。 請改為使用個別專案指定嚴重性,例如:

dotnet_remove_unnecessary_suppression_exclusions = none
dotnet_diagnostic.IDE0079.severity = warning

dotnet_remove_unnecessary_suppression_exclusions

財產 價值 描述
選項名稱 dotnet_remove_unnecessary_suppression_exclusions
選項值 以逗號分隔的規則識別碼或類別清單(前面加上 category: 排除所列規則或類別的歸併
all 停用規則(排除的所有規則識別碼)
none 開啟所有規則的規則(無排除專案)
預設選項值 none
using System.Diagnostics.CodeAnalysis;

class C1
{
    // 'dotnet_remove_unnecessary_suppression_exclusions = IDE0051'

    // Unnecessary pragma suppression, but not flagged by IDE0079
#pragma warning disable IDE0051 // IDE0051: Remove unused member
    private int UsedMethod() => 0;
#pragma warning restore IDE0051

    public int PublicMethod() => UsedMethod();
}

隱藏警告

如果您想要只隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。

#pragma warning disable IDE0079
// The code that's violating the rule is on this line.
#pragma warning restore IDE0079

若要停用檔案、資料夾或項目的規則,請將其嚴重性設定為 組態檔中的 none

[*.{cs,vb}]
dotnet_diagnostic.IDE0079.severity = none

若要停用此整個規則類別,請將類別的嚴重性設定為 組態檔中的 none

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-CodeQuality.severity = none

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

另請參閱