什么是隐式转换
Implicit Conversion
隐式转换就是直接使用,比如可以把一个 byte 类型直接用在 int 上。
比如以下直接把 byte 的 b 赋给 int 的 n,之间是直接用的,没存在什么额外的关键字,全由系统自动完成类型转换。
复制代码 代码如下:
byte b = 1;
int n = b;
隐式数值转换表(摘自 MSDN)
sbyte |
short、int、long、float、double或decimal |
byte |
short、ushort、int、uint、long、ulong、float、double或decimal |
short |
int、long、float、double或decimal |
ushort |
int、uint、long、ulong、float、double或decimal |
int |
long、float、double或decimal |
uint |
long、ulong、float、double或decimal |
long |
float、double或decimal |
char |
ushort、int、uint、long、ulong、float、double或decimal |
float |
double |
ulong |
float、double或decimal |
备注(摘自 MSDN)
从 int、uint 或 long 到 float 的转换以及从 long 到 double 的转换的精度可能会降低,但数值大小不受影响。
不存在到 char 类型的隐式转换。
不存在浮点型与 decimal 类型之间的隐式转换。
int 类型的常数表达式可转换为 sbyte、byte、short、ushort、uint 或 ulong,前提是常数表达式的值处于目标类型的范围之内。
【C#数值转换-隐式数值转换表参考】相关文章: