CS.UNCHECKED.LOOPITER.CAST
この警告は、タイプ Object を持つ 1 つのオブジェクトが、データを失ったかプログラム障害が発生した可能性がある別のオブジェクトにキャストされるループ反復子で報告されます。
脆弱性とリスク
データが失われるか、プログラムが失敗する可能性があります。
例 1
コピー
using System.Collections;
class Boo {
public int a;
}
class ForEachTest {
static void Main(string[] args) {
ArrayList o = new ArrayList();
foreach (Boo i in o) {}
}
}
クラス ArrayList のオブジェクトは 7 行目で宣言されます。次に、8 行目のループ反復子で Boo にキャストできますが、これは無効です。
外部参考資料
セキュリティトレーニング
Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。