更新:2007 年 11 月

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

sbyte

shortintlongfloatdoubledecimal

byte

shortushortintuintlongulongfloatdoubledecimal

short

intlongfloatdoubledecimal

ushort

intuintlongulongfloatdoubledecimal

int

longfloatdoubledecimal

uint

longulongfloatdoubledecimal

long

floatdoubledecimal

char

ushortintuintlongulongfloatdoubledecimal

float

double

ulong

floatdoubledecimal

备注

  • intuintlongfloat 的转换以及从 longdouble 的转换的精度可能会降低,但数值大小不受影响。

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

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

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

C# 语言规范

有关更多信息,请参见 C# 语言规范(C# 语言规范):

  • 6.1 隐式转换

  • 7.15 常数表达式

请参见