【c#】类型转换

来源:互联网 发布:中国网络直播第一人 编辑:程序博客网 时间:2024/06/07 03:31

1 隐式转换var1 = var2;
规则:只要var2类型的取值范围,包含在var1类型的取值范围中,就可以安全的隐式转换为var1类型
例如:

int var1;
byte var2 = 'a';

var1 = var2;  //隐式转换

2 显式转换
方法一:

int类型 --> byte

byte a;
int b = 67;

a = (byte)b; //把int型强制转换为byte型

注意:
byte型数据范围是0 - 255,int类型数据超过 255 后转换后会溢出,这就需要检查是否有溢出

溢出检查:
checked , unchecked

byte a;
int b = 281;

a = checked((byte)b);   //执行这段代码,程序会崩溃,因为 281 > 255,转换后溢出

如果把 checked 换成 unchecked , 则不会报错,这和前面默认做法一致。

也可以配置应用程序,把默认改为checked,这样不加 checked 也和加了checked 一样会检查是否溢出。
方法二:

Convert 命令进行显式转换, 将字符串转换为相应的数值类型

若想成功进行转换,则必须满足几个条件:
  • 提供的字符串是字符的有效表达方式
  • 该数不会溢出

例如:
输入  12.12

double doubleVal;

doubleVal = Convert.ToDouble(Console.readLine());  //将输入在控制台上的字符转换为double类型数据