C# as与is的用法
2015-07-20 09:51
295 查看
类型转换
任何类型都可以转换为其基类类型,用隐式转换完成;
任何类型转换为其派生类型时,必须进行显示转换。如:(类型名)对象名;
使用GetType可以取得任何对象的精确类型;
基本类型可以使用Convert类实现类型转换;
除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;
值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);
as/is示例
is转换规则:
检查对象类型的兼容性,并返回结果true(false);
不会抛出异常;
如果对象为null,刚返回false;
示例:
as转换规则:
检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
不会抛出异常;
如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常; 示例:
as比is少执行一次兼容性检查,性能可能会高一点点。
任何类型都可以转换为其基类类型,用隐式转换完成;
任何类型转换为其派生类型时,必须进行显示转换。如:(类型名)对象名;
使用GetType可以取得任何对象的精确类型;
基本类型可以使用Convert类实现类型转换;
除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;
值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);
as/is示例
is转换规则:
检查对象类型的兼容性,并返回结果true(false);
不会抛出异常;
如果对象为null,刚返回false;
示例:
object o = "abc"; if (o is string) //执行第一次类型兼容性检查 { string s = (string)o; //执行第二次类型兼容性检查,并转换 MessageBox.Show("转换成功!"); } else { MessageBox.Show("转换失败!"); }
as转换规则:
检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
不会抛出异常;
如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常; 示例:
object o = "abc"; string s = o as string; //执行第一次类型兼容性检查,并返回结果 if (s != null) MessageBox.Show("转换成功!"); else MessageBox.Show("转换失败!");
as比is少执行一次兼容性检查,性能可能会高一点点。
相关文章推荐
- C#枚举的简单使用
- C#基础:值类型、引用类型与ref关键字
- C#基础:委托
- C#高级编程四十二天----委托和事件
- C#之委托
- C#调用Axis2发布的带SoapHeader用户验证的WebService
- c#提供的循环
- C#泛型总结
- 用regasm注册C#的dll时报"没有注册类型"的解决方法
- c# 鼠标中的各种形状
- C# 相对路径(整合)
- c#生成图片验证码
- C# TPL学习
- VS2012如何创建模板
- C#基础加强内容图解
- C#基础加强第五天--委托,事件与反射
- C#基础加强第四天总结--正则表达式和XML
- C#基础加强第三天总结--集合与文件
- C#基础加强第二天总结--面向对象2及字符串
- C#基础加强第一天总结--面向对象1