is和as的区别

 1  static void Main(string[] args)
 2         {
 3             object o = new object();
 4 
 5             //is的用法
 6           //1.检查对象类型的兼容性,并返回结果,true或者false;
 7           //  2.不会抛出异常;
 8           //  3.如果对象为null,则返回值永远为false。
 9             if (o is A) //执行第一次兼容检查
10             {
11                 A a = (A)o;//执行第二次兼容检查
12             }
13             //as的用法
14             //1.检查对象类型的兼容性,并返回结果,如果不兼容就返回null;
15             //2.不会抛出异常;
16             //3.如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常。
17             B b = o as B;//执行一次类型兼容检查
18             if (b != null)
19             {
20                 Console.WriteLine("b is B's instance");
21             }
22         }

整理自:

[你必须知道的.NET] 第一回:恩怨情仇:is和as

原文地址:https://www.cnblogs.com/cheshui/p/2708515.html