C#中as和is关键字的作用
as:用于在兼容的引用类型之间执行某些类型的转换。
as类似于强制转换,不同的是,当转换失败时,运算符将产生空,而不是引发异常。
表达式:expression as type等效于expression is type ? (type)expression : (type)null,只是 expression 只被计算一次。
注意,**as运算符只执行引用转换和装箱转换。 **as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行。
is:is运算符只考虑引用转换,装箱转换和取消装箱转换。不考虑其他转换,如用户定义的转换。