c# is和as的区别用法

一、类型转换

  1. 任何类型都可以转为其基类型,用隐式转换完成。
  2. 任何类型转换成器派生类时,必须显示转换。如(类型)对象名。
  3. 使用GetType可以取得任何对象的精确类型;
  4. 基本类型可以使用Convert类实现类型转换;
  5. 除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型
  6. 值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);

二、is/as示例

  1. Is运算符判断类型是否可以转换,在使用()运算符进行显示的转换
  2. AS运算符进行类型转换

AS运算符:

用于两个应用类型之间进行转换,如果转换失败返回null,并不抛出异常,因此转换是否成功可以通过结果为null进行判断,并且只有在运行时才能判断。AS运算符有一定适用范围,他只适用于引用类型或可以为null的类型。

IS运算符:

IS运算符用于检查是否与给定类型兼容,并不进行实际的转换。如果判断类型引用为null,则返回false。由于仅仅判断是否兼容,因此不会抛出异常。使用范围,只适用于引用类型转换、装箱转换和拆箱转换,而不支持值类型转换。

在实际工作中尽量使用AS运算符,而少使用()运算符的显示转换的理由:

1、无论是AS和IS运算符,都比世界使用()运算符强制转换更安全。

2、不会抛出异常,免除使用try···catch进行异常捕获的必要和系统开销,只需要判断是否为null。

3、使用AS比使用IS性能更好(C#4.0权威指南上这么说)。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值