コンパイラーの警告を設定する
ReSharper には、 最も顕著なコンパイラー警告を報告するコードインスペクションと、それに対応する クイックフィックスが含まれています。 ReSharper コードインスペクションの結果がコンパイラー出力や他のツール、アナライザーと一致するように、コンパイラー警告の重要度レベルは、ReSharper 独自インスペクションの場合のように エディター や ReSharper オプション から設定することはできません。
代わりに、コンパイラーの警告を抑制する他の方法があり、以下にまとめます。
設定する | 互換性 | 粒度 | それを使用して |
|---|---|---|---|
すべてのコード分析ルール、すべてのコンパイラー警告ではない | File/type/global | Roslyn アナライザーとの互換性を確保し、ルールの重大度レベルを変更する | |
すべてのコンパイラー警告とコード分析ルール | コードブロック / ファイル | 特定の警告をローカルで抑制する | |
すべてのコンパイラー警告とコード分析ルール | プロジェクト全体 | ビルドレベルで警告を抑制するか、警告をエラーに昇格する | |
すべてのコンパイラー警告とコード分析ルール | タイプ / メンバー | ローカルスコープ内の特定の警告を抑制する | |
すべてのコンパイラー警告とコード分析ルール | 議会全体 | プロジェクト全体で編集不可能なコードや生成されたコードの警告を抑制する |
.editorconfig を使用する (コードスタイルと最新のアナライザーに推奨)
.editorconfig ファイルは、コードスタイルと診断を設定するのに便利な方法です。 これにより、特定の警告の重大度を、プロジェクト全体で一貫した方法で指定できます。
サポートされているすべての警告に対して、次の形式で EditorConfig キーを使用できます。
たとえば、次のようになります。
この方法は、C# 8.0 で始まるコンパイラー警告と、Roslyn 解析ルールで始まるコンパイラー警告(コンパイラー自身によって出力される警告も含む)に有効です。 たとえば、次のようになります。
null 許容参照 (CS8xxx) に関連する警告。
プラットフォーム互換性の警告 (CS9xxx)。
特定のドキュメントまたはコードスタイルの診断 (例: CS1591)。
コード内で #pragma ディレクティブを使用する
#pragma ディレクティブを使用すると、コード内で特定の警告を直接抑制できます。 これは、一時的な警告の抑制や、警告の範囲を特定のコードブロックに限定する場合に便利です。
ハイライトされたコンパイラー警告を抑制するには、 Alt+Enter を押して対応する項目を選択します。

#pragma による抑制は次のようになります。
この方法は、 .editorconfig で構成できないものも含め、すべてのコンパイラー警告 (CSxxxx) に対して機能します。
プロジェクトファイルで警告を設定する (.csproj)
プロジェクトファイルを使用すると、プロジェクト全体レベルで警告の動作を設定できます。 例としては、次のようなものがあります。
特定の警告を抑制する
すべての警告をエラー扱いにする
特定の警告をエラーとするかどうか
.csproj ファイル内の構成はすべての CS 警告に適用され、ビルド出力動作に関しては .editorconfig 設定を上書きします。
[SuppressMessage] 属性を使用する
[SuppressMessage] は、特定の型またはメンバー内の特定のコンパイラー警告とコード分析ルールを抑制するために使用されます。 明確でスコープが限定され、ドキュメント化された抑制が必要な場合は、 #pragma の代替として使用できます。 たとえば、次のようになります。
グローバル抑制ファイルを使用する (GlobalSuppressions.cs)
グローバル抑制ファイルを使用すると、プロジェクト全体にわたってコンパイラー警告または Roslyn コード分析ルールを抑制できます。 抑制する警告を指定するには、属性を使用します。 たとえば、次のようになります。