乐逍遥

博客园 首页 新随笔 联系 订阅 管理

在程序运行的时候,我们可能经常会用"Is"与"As"来进行类型判定,但它们在用法上有什么区别呢
 1.Is运算符用于检查对象的运行时类型是否与给定类型兼容
 expression is type
 请注意,is 运算符只考虑引用转换、装箱转换和取消装箱转换。is 运算符不考虑其他转换(如用户定义的转换)。
  2.as 运算符用于执行可兼容类型之间的转换。as 运算符用在以下形式的表达式中:
       expression as type
 (其中: expression 引用类型的表达式。 type 引用类型。 )

  as 运算符类似于类型转换,所不同的是,当转换失败时,as 运算符将产生空,而不是引发异常。
  在形式上,这种形式的表达式:
  expression as type
  等效于:
  expression is type ? (type)expression : (type)null
  只是 expression 只被计算一次。
  请注意,as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这  类转换应使用 cast 表达式来代替其执行

posted on 2006-01-05 16:26  乐逍遥  阅读(928)  评论(0)    收藏  举报