C#


ROSLYN.RELIABILITY.CA2021 : Do not call Enumerable.Cast<T> or Enumerable.OfType<T> with incompatible types (C#)

See Roslyn-Detected C# Warning Classes for more information.

要旨

Enumerable.Cast and Enumerable.OfType require compatible types to function expectedly. The generic cast (IL 'unbox.any') used by the sequence returned by Enumerable.Cast will throw InvalidCastException at runtime on elements of the types specified. The generic type check (C# 'is' operator/IL 'isinst') used by Enumerable.OfType will never succeed with elements of types specified, resulting in an empty sequence. Widening and user defined conversions are not supported with generic types.

この指摘はRoslynのCA2021に該当します。ルール詳細につい ては、下記リンクを参照してください。 CA2021

プロパティ

クラス名 Do not call Enumerable.Cast<T> or Enumerable.OfType<T> with incompatible types (C#)
日本語クラス名 Do not call Enumerable.Cast<T> or Enumerable.OfType<T> with incompatible types (C#)
クラス分類 信頼性 (reliability)
ニーモニック ROSLYN.RELIABILITY.CA2021
カテゴリー なし
対応言語 C# で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで有効になっています。チェックを無効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += discard class="Do not call Enumerable.Cast<T> or Enumerable.OfType<T> with incompatible types (C#)"

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。