【发布时间】:2009-02-23 15:26:15
【问题描述】:
我已经包装了一个 dll 方法,该方法具有一个整数作为 Web 服务中的输出参数。 在测试中,我发现当我期待 -1 时,我得到了 65,535。我意识到 dll 使用的是 16 位整数,并且在我的代码中引用外部 dll 时我指定了标准的 .NET 32 位整数。通过指定一个 16 位整数很快解决了这个问题,一切都很好。
我的问题是为什么会发生这种情况?如果我试图将 32 位整数放入 16 位整数中,我可以理解发生溢出,但我不太确定为什么会反过来发生这种情况。显然,我对类型之间的这种类型转换的理解有点缺乏,所以任何指导将不胜感激。
【问题讨论】:
标签: .net integer-overflow