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