is关键字和as关键字的区别和含义,什么情况下用? 作者: 许庭洲 时间: 2014-5-1 06:29
1. is运算
Chinese ch new Chinese();
//隐士转换,把子类变量赋值给父类变量
Person p =ch;
Person p = new Chinese();
Chinese ch = (Chinese)p;
//如果对象不在同一个继承树路径上则不能强制类型转化
Dog g = new Dog();
Chinese ch =(Chinses)g;//错误
//is运算
if(p is Chinsese)
{
Console.WriteLine("中国人");
}
else if(p is Korean)
{
Console.WriteLine("韩国人");
}
2. as运算
Chinese ch = p as Chinses;
if(ch!=null)
{
Console.WriteLine("中国人");
}
Korean ch= p as Korean;
if(ch!=null)
{
Console.WriteLine("韩国人");
}