黑马程序员技术交流社区

标题: 新手求解答,c#中as操作符的用法是怎样的? [打印本页]

作者: 张翠花    时间: 2014-1-21 16:46
标题: 新手求解答,c#中as操作符的用法是怎样的?
本帖最后由 张翠花 于 2014-1-23 13:52 编辑

c#中as操作符的用法是怎样的?与is操作符有什么区别么?
作者: 邬长星    时间: 2014-1-21 22:25
c# 中 is和as 操作符是用来进行强制类型转换的
    is : 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,永远不会抛出异常。
    as:与强制类型转换是一样的,但是永远不会抛出异常,即如果转换不成功,会返回null
作者: 许庭洲    时间: 2014-1-22 07:39
//////////////////////////////////////////////////////////////////////////////////////
Chinese ch =new Chinese();
//隐式转换,把子类变量赋给父类变量
Person p = ch;
//显示转换,把父类变量值赋值给子类变量
Person p = new Chinese();
Chinese ch = (Chinese)p;
//如果对象不在同一个继承树路径上则不能强制类型转换
Dog g = new Dog();
Chinese ch =(Chinese)g;//错误
//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("韩国人”);
}

作者: 沈可    时间: 2014-1-22 15:02
本帖最后由 沈可 于 2014-1-22 15:04 编辑

强制类型装换:as是将类型转换,不成功返回null;is是判断类型是否能够装换,返回bool类型值





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2