码迷,mamicode.com
首页 > 其他好文 > 详细

如何避免类型转换时的异常

时间:2014-08-13 08:00:15      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:使用   io   strong   问题   代码   工作   程序   on   

分析问题

  程序员经常会面临一些类型转行的工作,其中有些是确定可转换的,例如把一个类型对象转换成基类对象,而有些则是带有尝试性的,譬如把基类引用的对象转换成子类,当执行这样的尝试性转换时,程序员就应该做好捕捉异常的准备。

  当一个不正确的类型转行发生时,就会产生InvalidCastException异常,程序员有时候会用try、catch块做一些尝试性的类型转换,这样的代码没有任何错误,但是性能却相当糟糕。异常是一种耗费资源的机制,每当异常被抛出时,异常堆栈将被建立,异常信息将被加载,而通常这些工作成本相对较高,并且在尝试性转换时,这些信息都没有意义。所以C#提供了另外一种语法来进行尝试性的类型转换,那就是关键字is和as所做的工作。

  is语句用来判断一个对象是否可以转换为另一个对象,如果可以则返回true,不行则返回false。as语句实现了大致类似的功能,它对对象进行尝试性的检查,如果可以转换成指定对象,则返回转化后的引用,不可以的话则返回null。

答案

  用is和as语句代替强制转换,可以有效地避免InvalidCastExcepiton异常,执行效率相对较高。读者应该使用is或者as语句来代替直接使用强制转换。

 

如何避免类型转换时的异常,布布扣,bubuko.com

如何避免类型转换时的异常

标签:使用   io   strong   问题   代码   工作   程序   on   

原文地址:http://www.cnblogs.com/wangjinpeng-study/p/3909117.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!