C#中is 和 as 的区别

来源:互联网 发布:木秀于林风必助之知乎 编辑:程序博客网 时间:2024/05/16 13:45

//is运算
if(p is Chinese)
{
    Console.WriteLine("中国人");
}
else if(p is Korean)
{
    Console.WriteLine("韩国人");
}

//as 运算符
Chinese ch = p as Chinese ;
if(ch!=null)
{
   Console.WriteLine("中国人");
}
Korean ch = p as Korean ;
if(ch!=null)
{
   Console.WriteLine("韩国人");
}

if (p1 is Chinese)//is运算符结果就是bool,表示是否是指定的类型。


is用来判断变量指向的对象是否是指定的类型或者指定类型子类类型。
as可以起到判断类型和转换的双重作用。