『框架设计(第2版)CLR Via C#』学习笔记——使用is和as操作符来进行强制类型转换
2008-07-03 23:51
876 查看
is操作符是检查一个对象是不是兼容于指定的类型,并返回一个Boolean值:true或false。因此is操作符永远不会抛出异常。
例如如下代码:
Object o = new Object();
Boolean b1 = (o is Object); //b1 is true
Boolean b2 = (o is Student); //b2 is false
如果对象是null引用,则总是返回false。
那么as是用来干吗的哪?还是让我们先来看一段代码吧:
if (o is Student)
Student s = o as Student;
if (s != null)
{
// do rest things
}
这里就只检查了一次,CLR核实o是否兼容于Student类型,如果是,则返回对同一个对象的一个非null的引用。如果不兼容于Student类型,as操作符就会返回null。这里需要说明一下if语句只是检查s是否为null,这个过程相较于校验对象的类型,这个检查能更快的执行。
例如如下代码:
Object o = new Object();
Boolean b1 = (o is Object); //b1 is true
Boolean b2 = (o is Student); //b2 is false
如果对象是null引用,则总是返回false。
那么as是用来干吗的哪?还是让我们先来看一段代码吧:
if (o is Student)
Student s = o as Student;
if (s != null)
{
// do rest things
}
这里就只检查了一次,CLR核实o是否兼容于Student类型,如果是,则返回对同一个对象的一个非null的引用。如果不兼容于Student类型,as操作符就会返回null。这里需要说明一下if语句只是检查s是否为null,这个过程相较于校验对象的类型,这个检查能更快的执行。
相关文章推荐
- 『框架设计(第2版)CLR Via C#』学习笔记——CLR寄宿
- 『框架设计(第2版)CLR Via C#』学习笔记(002)——将托管代码合并到程序集
- 『框架设计(第2版)CLR Via C#』学习笔记(001)——将源代码编译成托管模块
- CLR Via C#(框架设计)学习笔记 总结
- 枚举学习文摘 — 框架设计(第2版) CLR Via C#
- 枚举学习文摘 — 框架设计(第2版) CLR Via C#
- 框架设计(第2版):CLR Via C#
- 『框架设计(第2版)CLR Via C#』学习笔记——常量
- 一网友推荐的书:框架设计(第2版):CLR Via C#
- 框架设计(第2版):CLR Via C#
- 【读书笔记】《框架设计(第2版)CLR Via C#》中两个比较有趣的知识点
- 【读书笔记】《框架设计(第2版)CLR Via C#》中两个比较有趣的知识点(转)(good)
- 框架设计(第2版)CLR Via C#(1)
- 框架设计(第2版):CLR Via C#
- 框架设计(第2版):CLR Via C#
- 【读书笔记】《框架设计(第2版)CLR Via C#》中两个比较有趣的知识点(转)(good)
- 框架设计(第2版)CLR Via C#
- CLR Via C# 学习笔记(1) 基元类型 值类型 引用类型
- CLR Via C# 学习笔记(2) 装箱和拆箱
- (原创)c#学习笔记05--变量的更多内容01--类型转换03--使用Convert命令进行显式转焕