C#中的is和as

来源:互联网 发布:旭森集团 知乎 编辑:程序博客网 时间:2024/05/02 03:06

is操作符:检查一个对象是否兼容于指定的类型并返回一个true或false。它不会抛出异常。如果对象引用为null,则is返回false。 

如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则 is 表达式的计算结果将是 true。

如果已知表达式将始终是 true 或始终是 false,则 is 关键字将导致编译时警告,但是,通常在运行时才计算类型兼容性。

不能重载 is 运算符。

请注意,is 运算符只考虑引用转换、装箱转换和取消装箱转换。不考虑其他转换,如用户定义的转换。 

as 运算符:用于在兼容的引用类型之间执行转换。它类似于强制转换,所不同的是,当转换失败时,运算符将产生空,而不是引发异常。注意,它只执行引用转换和装箱转换。