CS.WRONG.CAST

如果一个对象转换为另一个对象,且可能丢失数据,或甚至发生程序故障,这种情况下将报告此警告。

漏洞与风险

可能丢失数据,或程序发生故障。当程序尝试在进行转换后访问不存在的类字段时,可能发生此情况。

示例

复制
  public class Object1 : Object2 {
     public int a;
  }
  public class Object2 {
     public int a;
  }
  public class ClassCastTests {
     public void foo() {
        Object1 o1;
       Object2 o2 = new Object2();
       o1 = (Object1)o2;
    }
 }

第 9-10 行声明了类 Object1 的对象 o1 和类 Object2 的对象 o2。然后,在第 11 行,Object2 转换为无效的 Object1。

安全培训

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