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
詳細については、「コード分析の警告を抑制する方法」を参照してください。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET