读你必须知道的.NET(一)
2013-02-26 14:38
162 查看
一直听说这本书不错,可是,我并没有购买,只是在博客园看作者Anytao对此作出的一系列分享:/content/5957793.html,讲解的一些内容对于面试似乎有很大帮助,感觉胜于所谓的面试宝典~哈哈,个人意见啦~
开篇提到了类型转换的操作符——is和as:
is:检查对象类型的兼容性,并返回bool值结果,永远不会抛出异常,若对象为null,返回值就为null。这个操作符主要用于判断一种类型可否当作另一种类型来使用。
as: 检查对象类型的兼容性,兼容时返回同一个对象的非null引用,不兼容则返回null,永远不会抛出异常,如果试图直接使用最终生成的引用,则会抛出NullReferenceException的异常。as主要用于尝试将一种类型转换为另一种类型,而且它必须用于引用类型或可为null的类型。
由于as只转换一次,之后判断转换后的变量是否为null即可,因此它的性能较is高。
开篇提到了类型转换的操作符——is和as:
is:检查对象类型的兼容性,并返回bool值结果,永远不会抛出异常,若对象为null,返回值就为null。这个操作符主要用于判断一种类型可否当作另一种类型来使用。
object o = new object(); class A { } if(o is A) { A a = (A) o; }
as: 检查对象类型的兼容性,兼容时返回同一个对象的非null引用,不兼容则返回null,永远不会抛出异常,如果试图直接使用最终生成的引用,则会抛出NullReferenceException的异常。as主要用于尝试将一种类型转换为另一种类型,而且它必须用于引用类型或可为null的类型。
boject o = new object(); class B { } B b = o as B; //将o转型为B,无论是否转型成功,都不会抛出异常 b.ToString(); //转型失败后b的值为null,此时访问b会抛出NullReferenceException的异常
由于as只转换一次,之后判断转换后的变量是否为null即可,因此它的性能较is高。
相关文章推荐
- 你必须知道的ADO.NET(二)了解.NET数据提供程序
- [你必须知道的.NET]第十八回:对象创建始末(上)
- [你必须知道的.NET]第二十九回:.NET十年(上)
- 艾伟:[你必须知道的.NET]第三十一回,深入.NET 4.0之,从“新”展望
- [你必须知道的.NET]第三十三回,深入.NET 4.0之,Lazy<T>点滴
- .NET中六个你必须知道的重要概念之值类型和引用类型
- 读你必须知道的.net有感--对象旅行(1)
- 【转】[你必须知道的.NET]第十三回:从Hello, world开始认识IL
- 目前只有三成功力(读你必须知道的.net有感)
- .Net--必须知道Class和struct的关系[转]
- .net必须知道的技术
- 《必须知道的.net》读书笔记(二)
- [你必须知道的.NET]第九回:品味类型---值类型与引用类型(中)-规则无边
- [你必须知道的.NET]第三十五回,判断dll是debug还是release,这是个问题
- [你必须知道的.NET]第十八回:对象创建始末
- [你必须知道的.NET]第三十四回,object成员,不见了!
- [你必须知道的.NET]第三十一回,深入.NET 4.0之,从“新”展望
- 【转】[你必须知道的.NET]第十四回:认识IL代码---从开始到现在
- [你必须知道的.NET]第十四回:认识IL代码---从开始到现在
- 你必须知道的.NET]第二十回:学习方法论