首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#中as跟is的用法

2012-09-24 
C#中as和is的用法一、类型转换?1.任何类型都可以转换为其基类类型,用隐式转换完成;?2.任何类型转换为其派生

C#中as和is的用法
一、类型转换?

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

二、is/as示例?

is转换规则:?

1. 检查对象类型的兼容性,并返回结果true(false);?
2.不会抛出异常;?
3.如果对象为null,刚返回false;?

示例:?

C#代码?

  1. object?o?=?"abc";??
  2. if?(o?is?string)?//执行第一次类型兼容性检查??
  3. {??
  4. ????string?s?=?(string)o;?//执行第二次类型兼容性检查,并转换??
  5. ????MessageBox.Show("转换成功!");??
  6. }??
  7. else??
  8. {??
  9. ????MessageBox.Show("转换失败!");??
  10. }??


as转换规则:?

1.检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;?
2.不会抛出异常;?
3.如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;?

示例:?

C#代码?
  1. object?o?=?"abc";??
  2. string?s?=?o?as?string;?//执行第一次类型兼容性检查,并返回结果??
  3. if?(s?!=?null)???
  4. ????MessageBox.Show("转换成功!");??
  5. else??
  6. ????MessageBox.Show("转换失败!");??


注:as比is少执行一次兼容性检查,性能可能会高一点点

热点排行