这是第一篇博文,希望我再接再厉,一直写下去,不断去学习,不断去进步 stay hungry, stay fool
本文结构:
1.定义
2.规则
3.用法和区别
4.实例
1.定义
is:检查对象是否与给定类型兼容。
as:用于在兼容的引用类型之间执行转换。
2规则
is提供的对象可以强制转换为所提供的类型;如果转换成功则返回 true,反之返回False,is通常在运行时才计算类型兼容性
as 运算符类似于强制转换操作;如果转换失败,as 会返回 null 而不引发异常,若转换成功则返回对象类型的实例
3用法和区别
Is用法:想必通过定义就可以稍微了解is仅进行对象类型之间的检查(此时已进行一次类型转换),如果兼容则需进行再次转换,转换两次一定会影响程序开发的性能
1 static void Main(string[] args)
2 {
3 object o;
4 if(o is Person)
5 {
6 Person p=(Person)o;
7 }
8
9 }
10
11 class Person{}
as用法:此对象类型转换仅进行一次,提高了性能
1 static void Main(string[] args)
2 {
3 object o;
4 Person p=o as Person;
5 if(p!=null)
6 {
7 //此处省略。。。
8 }
9
10 }
11
12 class Person{}
4.实例
判断一个类是否实现了某个接口
1 static void Main(string[] args)
2 {
3
4 Chinese Zhang=new Chinese();
5 if(c is IPerson)
6 {
7 //实现该接口
8 }
9
10
11 Chinese Wang=new Chinese();
12 IPerson p=Wang as IPerson;
13 if(p!=null)
14 {
15 //实现了该接口
16 }
17 }
18
19 interface IPerson
20 {
21 void Say();
22 }
23
24 class Chinese:IPerson
25 {
26 public void Say()
27 {
28 //say something
29 }
30 }
题外话:有另一种方法可判断类是否实现某接口
1 static void Main(string[] args)
2 {
3 Chinese Zhang=new Chinese();
4 if(Zhang.GetType().GetInterface("IPerson") !=null)
5 {
6 //实现了该接口
7 }
8 }
浙公网安备 33010602011771号