is
判断左边实例化类是否可转为右边的类,若能则返回true,若不能则返回false。
as
与is一样能判断是否可转,但是用法不同的是如下
class A
{
public string data;
}
class B
{}
Main
B b = new B();
bool isSuc = b is A;
WriteLine(isSuc);
if(b is A)
{
//
}
else
{
//
}
b data = "hhh";
A a = b as A;
if(a != null)
{
WriteLine(a.data);
}
ReadKey()
打印结果:
is 可以作判断
as 可以做赋值,且赋值失败会返回null,不用担心异常。该例子用的下转上(子转父)。