C# 中的 is 和 as
来源:互联网 发布:ohem算法 编辑:程序博客网 时间:2024/05/17 04:15
is 检查一个对象是否兼容于指定的类型,并返回一个Boolean值
as与is做差不多的事情,类型显式强制转换
as操作符的工作方式与强制类型转换一样,只是它永远不会抛出一个异常——相反,如果对象不能转换,结果就是null。
但as有其不同的地方,简化代码,同时提升性能。
请看示例代码:
Object obj=new Object();
ClassA a= obj as ClassA;
if(a!=null) //在if判断a是否为null
{
...
}
在这一段代码中,CLR核实obj是否兼容于ClassA类型,如果是,as会返回对同一个对象的一个非null引用;
如果obj不兼容ClassA类型,as操作符会返回null。
因此,as操作符使CLR只检验一次对象的类型。
ClassA
{
....
}
Object o=new Object();
Boolean b1=(o is Object); //b1为true.
Boolean b2=(o is ClassA) ; b2为false.
如果对象引用是null,is操作符总是返回false,因为没有可检查的其类型的对象。
is 操作符通常像下面这样使用:
if(obj is ClassA)
{
ClassA a=(ClassA) obj;
...
}
as与is做差不多的事情,类型显式强制转换
as操作符的工作方式与强制类型转换一样,只是它永远不会抛出一个异常——相反,如果对象不能转换,结果就是null。
但as有其不同的地方,简化代码,同时提升性能。
请看示例代码:
Object obj=new Object();
ClassA a= obj as ClassA;
if(a!=null) //在if判断a是否为null
{
...
}
在这一段代码中,CLR核实obj是否兼容于ClassA类型,如果是,as会返回对同一个对象的一个非null引用;
如果obj不兼容ClassA类型,as操作符会返回null。
因此,as操作符使CLR只检验一次对象的类型。
阅读全文
0 0
- C#中的is和as
- C#中的is和as
- C#中的as和is
- C# 中的 is 和 as
- C# 中的IS和AS操作符
- c#中的is和as运算符
- C#中的关键字is和as
- C#中的is和as操作符
- C#中的is和as操作符
- C#中的is和as操作符
- c#中的is和as运算符
- C#中的is和as操作符
- C#中的is和as操作符
- C#中的is和as操作符
- C#中的is和as操作符
- C#中的is和as操作符
- C#中的is和as操作符
- C#中的is和as操作符
- get_env
- ios-应用程序跳转到指定的页面
- python3.6 源码分析(一)
- 迭代求根
- Okhttp封装包
- C# 中的 is 和 as
- 欢迎使用CSDN-markdown编辑器
- 线段树浅谈
- 死锁、饥饿、活锁、wait()、notifyAll()、notify()
- mybatis调用存储过程(plsql)
- 8.2.1.19 防止全表扫描
- React Native 基础篇
- 更改字体大小:继承法和标签属性法
- Android Button设置文字 字母自动变大写...