强制类型转换:转换不成功会抛出异常,对引用类型和值类型都适用。
as运算符:转换不成功得到一个null值,不会抛出异常;仅适用于引用类型,不能用于值类型。

解决方案 »

  1.   

    最常用的考虑就是要看下面的语句是否需要判断返回是否为null。如果不需要判断,那么就用前者就好了。关于“类型转换”的一个常见误解,可以参考以前的一个帖子:http://bbs.csdn.net/topics/360039451
      

  2.   

    所以经常用 as,转换完记得判断是不是null
      

  3.   

    强制类型转换:转换不成功会抛出异常,对引用类型和值类型都适用。
    as运算符:转换不成功得到一个null值,不会抛出异常;仅适用于引用类型,不能用于值类型。 
      

  4.   

    大多数时候我们使用as的场景,此时使用is恰好是画蛇添足的,所以才用as(根据返回的结果是否是null来得到与not is一样的作用,而且还能得到最终的转换结果(而is根本没有转换结果这一说)。所以说“is和as配合”,我反而糊涂了。
      

  5.   

    if(a is B)
    {
      B b = a as B;
    }
    我是用的类似的代码
      

  6.   

    msdn已经告诉你答案了
    http://msdn.microsoft.com/zh-cn/library/cscsdfbt(v=vs.80).aspx自己看把,看完以后你就明白sp1234说的是啥了as 本身等效与
    expression is type ? (type)expression : (type)null所以在后续使用上is判定不是必须的,而null判定反而是必须的