分享方式:


移除不必要的隱藏 (IDE0079)

屬性
規則識別碼 IDE0079
職稱 移除非必要的歸併
類別 CodeQuality
子類別 不必要的程式代碼規則 (隱藏喜好設定)
適用語言 C# 和 Visual Basic
選項 dotnet_remove_unnecessary_suppression_exclusions

概觀

此規則會標幟來源中不必要的 pragmaSuppressMessageAttribute 屬性隱藏。

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

注意

即使您 在建置時啟用程式代碼樣式規則,也不會啟用此規則。 它只會出現在 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;
}

選項。

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

dotnet_remove_unnecessary_suppression_exclusions

屬性 數值 Description
選項名稱 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

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

另請參閱