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。