博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中 is 和 as 的区别
阅读量:6003 次
发布时间:2019-06-20

本文共 1258 字,大约阅读时间需要 4 分钟。

一, is 检查对象是否与给定的类型兼容

  @1 检查对象是否是一个实例,或者从父类那儿继承来的

       if(students is Person)

   {

         ...//code 

   }

      @2 is 运算符只考虑装箱,拆箱,以及引用转换;

      @3 在is运算符的左侧不允许使用匿名方法.(lambda表达式除外)

   ex: 

 
View Code
1             int a = 10; 2             object obj = a; 3             if(obj is int) 4             { 5                 Console.WriteLine("boxing..."); 6             } 7             a = 20; 8             Console.WriteLine("a={0}",a); 9             Console.WriteLine("obj={0}",obj);10 11 12 //输出结果:13   boxing...14   a=2015   obj=10

 

二. as 运算符用于执行可兼容类型之间的转换

  @1 as 运算符类似于类型转换,不同的是,as运算符转换失败了不会报错,而是返回一个null;

      @2 as 运算符只执行引用赚换和装箱转换.as 运算符无法执行用定义的转换;

View Code
1             object[] obj=new object[5]; 2             obj[0] = new MyClass(); 3             obj[1] = "hello"; 4             obj[2] = 123; 5             obj[3] = null; 6             obj[4] = 'a'; 7             for (int i = 0; i < obj.Length; i++) 8             { 9                 string s = obj[i] as string;10                 if(s!=null)11                 {12                     Console.WriteLine(s);13                 }14                 else15                 {16                     Console.WriteLine("not string ...");17                 }18             }

 

转载于:https://www.cnblogs.com/ry123/archive/2012/09/05/2671304.html

你可能感兴趣的文章
谈谈PHP网站的防SQL注入
查看>>
解析Java中静态变量与实例变量的区别
查看>>
java基础(三)-----java的三大特性之多态
查看>>
ASP.NET状态管理之五(查询字苻串QueryString)
查看>>
zookeeper api和zkclient api使用
查看>>
编写一个带有main函数的类,调用上面的汽车类,实例化奔驰、大众、丰田等不同品牌和型号,模拟开车过程:启动、加速、转弯、刹车、息火,实时显示速度。...
查看>>
MVC框架中的值提供机制(二)
查看>>
json字符串使用注意问题
查看>>
(二)Ribbon(负载均衡的客户端)+Rest
查看>>
清洗洗衣机
查看>>
springBoot中碰见的问题
查看>>
java基础
查看>>
人民的名义评论
查看>>
基于 CSS3 Media Queries 的 HTML5 应用
查看>>
表单的理解
查看>>
linux下yum安装指定的mysql版本
查看>>
In与Exists的区别
查看>>
Digit Counting, ACM/ICPC Danang 2007, UVa 1225
查看>>
两种思路实现单页面路由的功能
查看>>
iframe自适应高度和宽度
查看>>