请问在C#中,as类型转换操作和一般类型转换操作有什么不同

来源:百度知道 编辑:UC知道 时间:2024/07/03 04:06:40

as 在遇到无法转换的情况下不会抛出异常,而是返回null值
普通的用小括号语法的强制类型转换时如果类型不匹配就会抛出异常。

as 运算符类似于强制转换操作;但是,如果转换不可行,as 会返回 null 而不是引发异常。更严格地说,这种形式的表达式

expression as type

等效于

expression is type ? (type)expression : (type)null

只是 expression 只被计算一次。

注意,as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行。

转换失败时不会引发null引用错误