类型转换

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()

posted @ 2012-03-18 14:11  渊博  阅读(405)  评论(0编辑  收藏  举报