• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

《EffectiveC#》读书笔记(3)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

        Item 3: Prefer the is or as Operators to Casts

        第3项: 优先使用is/as进行类型转换

        由于C#是强类型的语言,我们要尽量避免类型的转换。但是有时转换是无法避免的,这时我们要优先使用is/as来进行类型的转换,避免使用强制的类型转换。
       asis操作符并不能进行所有的用户定义的类型转换, 只有当runtime类型和目标类型一致时转换操作才会成功.它们永远不会为了满足程序调用请求而创建一个新的object,这样就使类型转换更加的安全。
        让我们先来看看is操作符。is操作符可以检查对象是否和指定的类型兼容,并返回判断结果。is操作符永远不会抛出异常。
       

Object o = new Object();
Boolean b1 
= (o is Object);  //b1为true
Boolean b2 = (o is Person);  //b2为false


        is操作符为我们检查类型的兼容性,而as操作符提供类型的转型方式,它可以简化代码的同时提高性能。

object o = Factory.GetObject( );

MyType t 
= o as MyType;

if ( t != null )
{
  
// work with t, it's a MyType.
else
{
  
// report the failure.
}


        在上面的代码CLR会检查o所引用的对象是否和MyType兼容。如果兼容,as返回一个指向同一个对象的非空指针。如果不兼容,as返回null。但是要注意,as不能用于值类型的转换,否则返回null。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#中捕捉对话框的文本内容EnumChildWindows发布时间:2022-07-13
下一篇:
C#利用SqlBulkCopy大批量导入excel文件进入SQL发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap