is/as操作符
is/as操作符,是C#中用于类型转换的,提供了对类型兼容性的判断,从而使得类型转换控制在安全的范畴,提供了灵活的类型转换控制。
is规则:检查对象的兼容性,查看对象的类型是否完全一样,返回值 true/false.
不会抛出异常.
如果对象为null 则返回 false.
看代码:
class A { } class Program { static void Main(string[] args) { object o = new object(); A a = null; if (a is A) //a为null 则返回 false { // } A a1 = new A(); if (a1 is A) //实例化A a1 返回 true { // } if (o is A) //o不兼容 类 A 返回 false { // } } }
as的规则:
检查对象类型的兼容性,并返回结果,如果不兼容就返回null;
不会抛出异常。
看代码:
class Program { static void Main(string[] args) { object o = new object(); B ba = new B(); B b = ba as B; if (b != null) //类型兼容 返回B实例 对象 { // } B b1 = o as B; if (b1 != null) //类型不兼容 返回null { // } } } class B { }
is/as 最大区别就是返回值,is 返回bool; as返回对象或null