次の方法で共有


foreach ループに明示的なキャストを追加する (IDE0220)

財産 価値
ルール ID IDE0220
タイトル 明示的なキャストを追加する
カテゴリー スタイル
サブカテゴリー 言語ルール (表現レベルの設定)
該当する言語 C#
オプション dotnet_style_prefer_foreach_explicit_cast_in_source

概要

この規則は、コンパイラが非表示のキャストを追加するときに、foreach ループに明示的なキャストがないことを示します。 ジェネリックまたは厳密に型指定されたコレクションの場合、コンパイラが非表示のキャストを追加するときに明示的なキャストを強制すると、foreach ステートメントで正しくない型の使用が明らかになる可能性があります。

オプション

オプションでは、ルールを適用する動作を指定します。 オプションの構成については、「オプション形式 を参照してください。

dotnet_style_prefer_foreach_explicit_cast_in_source

財産 価値 説明
オプション名 dotnet_style_prefer_foreach_explicit_cast_in_source
オプション値 always ソース コードで明示的なキャストを優先します。
when_strongly_typed 厳密に型指定された (ジェネリック) コレクションで明示的なキャストを優先します。ArrayList などのレガシ コレクションは、これに該当しません。
既定のオプション値 when_strongly_typed

// Code with violations.
var list = new List<object>();
foreach (string item in list) { }

// Fixed code.
var list = new List<object>();
foreach (string item in list.Cast<string>())

警告を抑制する

1 つの違反のみを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、ルールを再度有効にします。

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

ファイル、フォルダー、またはプロジェクトのルールを無効にするには、その重大度を 構成ファイルnone に設定します。

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

すべてのコード スタイルルールを無効にするには、カテゴリ Style の重大度を、構成ファイルnone するように設定します。

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

詳細については、「コード分析の警告を抑制する方法」を参照してください。

関連項目