不要な抑制を削除する (IDE0079)
プロパティ | 値 |
---|---|
ルール ID | IDE0079 |
Title | 不要な抑制を削除する |
カテゴリ | CodeQuality |
Subcategory | 不要なコード 規則 (抑制の基本設定) |
該当言語 | C# および Visual Basic |
[オプション] | dotnet_remove_unnecessary_suppression_exclusions |
概要
この規則は、ソース内の不要な pragma と SuppressMessageAttribute 属性の抑制にフラグを設定します。
ソース抑制では、ソース コードの特定の場所でコンパイラおよびアナライザーの規則違反を抑制しますが、その他の場所では抑制しません。 一般に、修正する予定のない擬陽性または重要度の低い違反を抑制するために使用します。 ただし、抑制は多くの場合、古いものとなってしまいます。 この状況は、擬陽性を防ぐためにルールが固定されている場合、またはコードをリファクタリングし、その際に抑制を冗長化する場合に、発生する可能性があります。 この規則は、削除可能な冗長の抑制を識別するのに役立ちます。
Note
ビルド時にコード スタイル ルールを有効にした場合でも、このルールは有効になりません。 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
プロパティ | 値 | 説明 |
---|---|---|
オプション名 | dotnet_remove_unnecessary_suppression_exclusions | |
オプションの値 | 規則 ID またはカテゴリ (category: のプレフィックス付き) の , 区切りのリスト |
リストの規則について抑制を除外します |
all |
規則を無効にします (すべての規則 ID が除外されます) | |
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
詳細については、「コード分析の警告を抑制する方法」を参照してください。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET