【发布时间】:2015-11-20 07:01:34
【问题描述】:
我有这个表情
long balance = (long)answer.Find(DppGlobals.TAG_TI_BALANCE).Get_QWORD();
引发溢出的异常。右侧的值为无符号类型,值为:18446744073708240732。
如何避免这个异常,使用unchecked?
PS 等效 C++ 实现返回余额 = -1310984,我这里也需要相同的值。
为什么会有这样的异常?
现在确实在 C# 端也使用 unchecked,我得到 -1310984。有人可以建议,我是否会以某种方式丢失数据?
【问题讨论】:
-
那么堆栈跟踪是什么样的?确定在演员阵容中吗?
Get_QWord()的返回类型是什么? (顺便说一句,您是否有任何理由违反了正常的 .NET 命名约定和TAG_TI_BALANCE?)在不知道代码在做什么的情况下,很难给出好的建议。 -
@JonSkeet:是的,我检查过它肯定在演员阵容中。 QWORD 是 ulong。非常感谢您的建议
标签: c#