CS.UNCHECKED.LOOPITER.CAST

如果一个类型为 Object 的对象转换为另一个对象,且可能丢失数据,或甚至发生程序故障,这种情况下将在循环迭代器中报告此警告。

漏洞与风险

可能丢失数据,或程序发生故障。

示例 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) {}
      }
 }

在第 7 行声明了类 ArrayList 的对象 o。然后,在第 8 行,循环迭代器中的 Object 可转换为无效的 Boo。

安全培训

应用程序安全培训材料由 Secure Code Warrior 提供。