您的位置:首页 > 编程语言 > C#

C#类型转换(转载&摘抄&整理:供自己查阅学习)

2012-04-12 10:07 330 查看
  在数据类型转换中,C#相对其它语言来说是比较严格的。

  一、转换规则:(你必须知道的.net)

C#允许在继承链中向下转型,即任何类型都可以安全地隐式转换为其基类类型;

任何类型转换为其派生类型时,必须进行显示转换,转换的规则是:(类型名)对象名,转换失败会抛出异常;

CLR是类型安全的,任何对象都可以用GetType方法获得其精确类型;

基本类型可以使用Covert类实现类型转换;

除了string以外的其他类型都有Parse方法,用于将字符串类型转换为对应的基本类型;

值类型和引用类型的转换机制称为装箱(boxing)和拆箱(unboxing)。

  二、C#提供了一种is操作符进行换算。is模式规则如下:

检查对象类型的兼容性,并返回结果,true或者false;

不会抛出异常;

如果对象为null,则返回值永远为false。

View Code

Class2 cls2 = cls1 as Class2;

if (cls2!=null)//判断cls2是否为空,如转换失败cls2为空。
{
System.Console.WriteLine("Ok");
}
else
{
System.Console.WriteLine("Error!");
}


四、几种类型转换的比较

1.is模式和as模式对比:is模式要进行两次数据类型的判断,而as只需要一次转换,性能高。但是is能作用于不可为空类型(如值类型),as不能作用于此类型。

2.as 和强制类型转换对比:as比强制转换能好,毕竟转换失败它不会抛出异常。但是强制转换能够处理“用户自定义转换”,而as就不行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: