变量的类型转换

分为隐式转移和显式转换
    隐式转移不需要写其它代码,只要直接var1=var2;这样直接赋值就可以了,一般用于存储长度一样或后者存储长度大于前者的情况,可以确保数据不会在转换时被丢失。这里要注意的时字符类型的数据保存时以整形形式保存,ASCII码的编码方式,所以它可以显式转换为长短整型。
    如果后者的存储长度小于前者时,就不能进行隐式转换,因为有可能会丢失数据,当然,不做特殊处理,C#的编译也不会通过。这就需要显式转换,这样来使用显式转换,(类型名)转换后的变量名; 如:
byte sumnum;
short sournum=7;
sumnum=(byte)sournum;
    这样就将短整型转移为字节型了。
    但是如果sournum超过了不得256这个byte的取值范围的时候,仍然可以编译通过,这是因为语法并没能错,只是出现了数据丢失。所以就要利用下面叫做表达式溢出检查环境,checked、unchecked来进行检查。
byte sumnum;
short sournum=300;
sumnum=checked((byte)sournum);
    这样在进行转换到字节型变量的时候会检查到发生了数据溢出,而编译报错。如果用unchecked关键字的话就不会进行检查了。
    还有一种方法进行显式转换,利用Convert命令:
Convert.ToBoolean(val)
Convert.ToByte(val)
Convert.ToChar(val)
Convert.ToDecimal(val)
Convert.ToDouble(val)
Convert.ToInt16(val)
Convert.ToInt32(val)
Convert.ToInt64(val)
Convert.ToSByte(val)
Convert.ToSingle(val)
Convert.ToString(val)
Convert.ToUInt16(val)
Convert.ToUInt32(val)
Convert.ToUInt65(val)
使用这些命令会自动进行溢出检查,unchecked关键字对它这些命令没有作用。

posted on 2008-04-19 22:54  northwolf  阅读(491)  评论(0)    收藏  举报