C#中is、as以及强制转换之间区别

有两个类型变量,CLASS1 c1和CLASS2 c2,判断c1的类型和c2的类型能否兼容:

1、if(c1 is CLASS2)

不管c1的引用是否为null,只要c1类型和CLASS2不兼容,则返回false。

2、CLASS2 c2 = c1 as CLASS2;

如果c1和CLASS2不兼容,则返回null给c2.

3、CLASS2(c1);

如果c1和CLASS2不兼容则出现异常。

if(c1 is CLASS2)

{

CLASS2(c1);

}

CLASS2 c2 = c1 as CLASS2;

if(c2!=null)

{

}

原文地址:https://www.cnblogs.com/zoupeiyang/p/1518514.html