隐式数值转换表(C# 参考)

下表显示了预定义的隐式数值转换。隐式转换可能在多种情形下发生,包括调用方法时和在赋值语句中。

目标
sbyte shortintlongfloatdoubledecimal
byte shortushortintuintlongulongfloatdoubledecimal
short intlongfloatdoubledecimal
ushort intuintlongulongfloatdoubledecimal
int longfloatdoubledecimal
uint longulongfloatdoubledecimal
long floatdoubledecimal
char ushortintuintlongulongfloatdoubledecimal
float double
ulong floatdoubledecimal

备注

  • 可能从转换中丢失精度,但不是模intuintlong,或ulongfloatlongulongdouble

  • 不存在到 char 类型的隐式转换。

  • 不存在浮点型与 decimal 类型之间的隐式转换。

  • int 类型的常数表达式可转换为 sbytebyteshortushortuintulong,前提是常数表达式的值处于目标类型的范围之内。

C# 语言规范

有关详细信息,请参阅 C# 语言规范。该语言规范是 C# 语法和用法的权威资料。

请参阅

C# 参考

C# 编程指南

整型表(C# 参考)

内置类型表(C# 参考)

显式数值转换表(C# 参考)

强制转换和类型转换(C# 编程指南)