存在从 ulong 到 float、double 或 decimal 的预定义隐式转换。
不存在从 ulong 到任何整型的隐式转换。例如,不使用显式类型转换时,下列语句将产生编译错误:
long long1 = 8UL; // Error: no implicit conversion from ulong
存在从 byte、ushort、uint 或 char 到 ulong 的预定义隐式转换。
同样,不存在从浮点型到 ulong 类型的隐式转换。例如,除非使用显式强制转换,否则以下语句将生成一个编译器错误:
// Error -- no implicit conversion from double:
ulong x = 3.0;
// OK -- explicit conversion:
ulong y = (ulong)3.0;
有关兼用浮点型和整型的算术表达式的信息,请参见 float 和 double。
有关隐式数值转换规则的更多信息,请参见隐式数值转换表(C# 参考)。