as和is类型转换
2015-09-05 17:20
274 查看
一、类型转换
1.任何类型都可以转换为其基类类型,用隐式转换完成;
2.任何类型转换为其派生类型时,必须进行显示转换。如(类型名)对象名;
3.使用GetType可以取得任何对象的精确类型;
例:int i = 0;
char c='a';
Console.WriteLine(c.GetType());
4.基本类型可以使用Convert类实现类型转换;
5.除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;
6.值类型和引用类型的转换成为装箱(boxing)或拆箱(unboxing)
二、is/as 示例
is转换规则
1.检查对象类型的兼容性,并返回结果true(false);
2.不会抛出异常;
3.如果对象为null,返回false;
示例
object o = "abc";
if (o is string) //执行第一次类型兼容性检查
{
string s = (string)o; //执行第二次类型兼容性检查,并转换
Console.WriteLine("转换成功"+s);
}
else {
Console.WriteLine("转换失败");
}
as转换规则
1.检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
2.不会抛出异常;
3.如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;
示例
object o = "abc";
string s = o as string;//执行第一次类型兼容性检查,并返回结果
if (s!=null)
{
Console.WriteLine("转换成功"+s);
}
else {
Console.WriteLine("转换失败");
}
注:as比is少执行一次兼容性检查,性能可能会高一点点。
as是引用类型 类型的转换或者装箱转换,不能与值类型转换。
1.任何类型都可以转换为其基类类型,用隐式转换完成;
2.任何类型转换为其派生类型时,必须进行显示转换。如(类型名)对象名;
3.使用GetType可以取得任何对象的精确类型;
例:int i = 0;
char c='a';
Console.WriteLine(c.GetType());
4.基本类型可以使用Convert类实现类型转换;
5.除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;
6.值类型和引用类型的转换成为装箱(boxing)或拆箱(unboxing)
二、is/as 示例
is转换规则
1.检查对象类型的兼容性,并返回结果true(false);
2.不会抛出异常;
3.如果对象为null,返回false;
示例
object o = "abc";
if (o is string) //执行第一次类型兼容性检查
{
string s = (string)o; //执行第二次类型兼容性检查,并转换
Console.WriteLine("转换成功"+s);
}
else {
Console.WriteLine("转换失败");
}
as转换规则
1.检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
2.不会抛出异常;
3.如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;
示例
object o = "abc";
string s = o as string;//执行第一次类型兼容性检查,并返回结果
if (s!=null)
{
Console.WriteLine("转换成功"+s);
}
else {
Console.WriteLine("转换失败");
}
注:as比is少执行一次兼容性检查,性能可能会高一点点。
as是引用类型 类型的转换或者装箱转换,不能与值类型转换。
相关文章推荐
- 密码学2——Java byte数组与十六进制字符串互转
- 操作系统内存管理——分区、页式、段式管理
- DBGrid1
- 小解C++模板特化
- iOS Simulator运行慢悠悠,但是APP的功能又很正常
- 有关性能和误删的注意
- 密码学1——Java 加密解密基础
- 进程调度算法
- php-fpm 在centos 7下的安装配置
- 查看nginx cache命中率
- Android中Handler使用不当引起的内存泄露
- 网络游戏中的主循环
- c语言之单链表的创建及排序
- 1063. Set Similarity (25)
- 在Mac下编译webdis
- cocos2dv2项目转换为ARC支持的项目
- cocos2dv2项目转换为ARC支持的项目
- vector的clear()的内部过程与析构函数调用
- 由web程序出现乱码开始挖掘(Bom头、字符集与乱码)
- 程序的装入和链接