C#开发中is和as的区别
2012-11-20 15:47 埋头前进的码农 阅读(207) 评论(0) 编辑 收藏 举报废话不多说,上代码:
static void Main(string[] args) { object o = new object(); //is的用法 //1.检查对象类型的兼容性,并返回结果,true或者false; // 2.不会抛出异常; // 3.如果对象为null,则返回值永远为false。 if (o is A) //执行第一次兼容检查 { A a = (A)o;//执行第二次兼容检查 } //as的用法 //1.检查对象类型的兼容性,并返回结果,如果不兼容就返回null; //2.不会抛出异常; //3.如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常。 B b = o as B;//执行一次类型兼容检查 if (b != null) { Console.WriteLine("b is B's instance"); } }