is和as操作符

is操作符:检查对象是否与给定类型兼容。

说明:

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

    1):表达式为空:返回false

    2):表达式内容不为空,但强制转换类型时发生异常,返回false

    3):表达式为null时,并不会抛异常,因为没有正确的对象来做类型验证。

2>:is操作符只考虑引用转换、装箱转换和取消装箱转换。下面的程序都会发生编译时错误(CTE):已知表达式将始终是 true 或始终是 false

3>:不能重载is操作符。

4>:"is""as"运算符的第一个操作数不能是lambda表达式或匿名表达式。

 as 运算符:用于在兼容的引用类型之间执行转换。

说明:

 

1>:as操作符类似于强制转换,但又有区别,当对象为null时,不会抛异常而是会返回null。

2>:as 运算符只执行引用转换和装箱转换,无法执行其他转换

 

 

 

原文地址:https://www.cnblogs.com/Dream-High/p/3384317.html