as 用于在兼容的引用类型之间执行转换;类似于强制转换操作;但是,如果转换不可行,as 会返回 null 而不是引发异常.as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行。
is 检查对象是否与给定类型兼容。如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则 is 表达式的计算结果将是 true。如果已知表达式将始终是 true 或始终是 false,则 is 关键字将导致编译时警告,但是,通常在运行时才计算类型兼容性。
is与as 区别:
1.在于is相当与if语句一样,用于对类型的判断,返回true和false. if(object is object2) ,判断object2是否object属于类型
2.as 相当与类型强制转换,string s = o as string. 如果类型相同就会返回一个非空的引用,否则就返回一个空引用