我已将 Java 代码移植到 C#。
您能否解释一下为什么我在下面的行中出现编译时错误(我使用 VS 2008):
private long l = 0xffffffffffffffffL; // 16 'f' got here
无法将源类型 ulong 转换为目标类型 long
我在这里需要与原始 Java 代码相同的值。
Java 不介意常量在这种特定情况下是否溢出 - 您给出的值实际上是 -1。
在 C# 中实现相同效果的最简单方法是:
private long l = -1;
如果你想保留 16 fs,你可以使用:
private long l = unchecked((long) 0xffffffffffffffffUL);
If you actually想要有符号长整型的最大值,您应该使用:
// Java
private long l = Long.MAX_VALUE;
// C#
private long l = long.MaxValue;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)