我已将Java代码移植到C#。您能否在以下代码行中解释为什么我会出现编译时错误(我使用VS 2008):
private long l = 0xffffffffffffffffL; // 16 'f' got here
无法将源类型ulong转换为目标类型long
我在这里需要与原始Java代码相同的值。
假设您不担心负值,可以尝试使用unsigned long:
unsigned long
private ulong l = 0xffffffffffffffffL;
在Java中,的实际值l将为-1,因为它将溢出2^63 - 1最大值,因此您可以将常量替换为-1。
l
-1
2^63 - 1