类型转换

本文介绍了C#中的自动类型转换和强制类型转换的概念及用法,包括装箱与拆箱的过程,类型检查的方法以及如何使用System.Convert类进行类型转换。

1.自动类型转换(隐式类型转换)

示例:

int result;                   //声明int变量

long sum;                   //声明long变量

int val1 = 10;             //声明整型变量,赋值10

long val2 = 20;           //声明长整型变量,赋值20

sum = val1 + val2;     //val1自动转换成long整型,与val2相加,赋值给长整型sum

result = val1 + val2;   // val1自动转换成long整型,与val2相加,赋值失败,不能赋给int型变量

 

2.强制类型转换(显式类型转换)

示例:

int result;                 //声明int变量

int val1;                   //声明int变量

long val2 = 10;         //声明long变量

val1 = (int)val2;       //强制转换长整型为短整型,赋值给int变量val1

decimal r =12.34m;  //声明金钱变量赋值

decimal area = (decimal)Math.PI * r * r;  //强制转换double数值为decimal类型

 

3.装箱和拆箱

      值类型和引用类型之间的转换是所谓的装箱和拆箱。装箱是把值类型转换为Object类型,而把Object类型转换为值类型是拆箱。

示例:

int a = 10;                     //声明int类型,并赋值

System.Object obj = a;  //把整型转换为引用类型

int b = (int)obj;             //把引用类型转换为值类型

 

4.类型检查

        为了避免在数据类型转换时出现异常,有必要在类型转换前进行类型检查。C#提供了两个类型检查的运算符:is 和 as 。is 运算符用了类型转换前的兼容性检查,as 运算符是在转换过程中类型兼容性的检查。

 

示例:

object obj = Math.PI;         //声明一个对象类型

obj is double;                    //判断obj对象是double类型,结果为true

obj = ”hello”;                    //obj赋值为字符串“hello”

obj is double;                   //判断obj的值,结果为false

string str = obj as string;  //类型转换成功,str的值为“hello”

int i = obj as string;         //类型转换失败,str的值为null

 

5.类型转换方法

System.Convert转换类

方法有:ToDouble()、ToDeimal()、ToString()

另有方法:Parse()、TryParse()

转载于:https://www.cnblogs.com/hhrtvu/archive/2012/03/18/2404633.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值