移除不必要的隱藏 (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
如需詳細資訊,請參閱 如何在隱藏程式代碼分析警告。