- 隐式转换 从A到B的转换可在所有情况进行,执行规则非常简单,可以让编译器执行转换
- 显示转换 从A到B的转化只在某些情况下进行,执行规则比较复杂,应进行某些额外处理
隐式转换
规则:
任何类型A,只要其取值范围包含在B中,就可以隐式转化为类型B。
显式转换
强制转换:
(<destinationType>)<sourceVar>
取值范围大的类型A强制转换为取值范围小的类型B
- 若A的值包含在类型B的取值范围内,则可以强制转换;
- 若A的值大于类型B的取值范围,那么会丢失数据。
关键字:checked、unchecked
对这种情况进行溢出检查,上述问题会反馈错误信息。
//也可在应用程序中配置,避免这种情况。
Convert命令进行显式转换
Convert.To...()将字符串值转换为数值。
为成功执行转换,虽提供的字符串必须是数值的有效表达方式,该数还必须是不会溢出的数。
此类转换总是会进行溢出检查,checked、unchecked以及项目中的设置不起作用。
命令 | 结果 |
Convent.ToBoolean(val) | val转换为bool |
Convent.ToByte(val) | .... |
Convent.ToChar(val) | |
Convent.ToDecimal(val) | |
Convent.ToDouble(val) | |
Convent.ToInt16(val) | |
Convent.ToInt32(val) | |
Convent.ToInt64(val) | |
Convent.ToSByte(val) | |
Convent.ToSingle(val) | |
Convent.ToString(val) | |
Convent.ToUInt16(val) | |
Convent.ToUInt32(val) | |
Convent.ToUInt64(val) | ... |