在程序运行的时候,我们可能经常会用"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 表达式来代替其执行
浙公网安备 33010602011771号