2

在 C# 中,当弄乱该系统 DLLImport/(非托管?)代码的东西时,我在某处读到使用 Int32 精确类型而不是 int 很重要。这是真的?有人可以详细说明为什么这样做很重要吗?

4

2 回答 2

6

我认为您更有可能阅读有关 usingIntPtr而不是int. 正如其他人所说,int并且Int32是等效的。

int在 32 位系统上交换和交换并不是真正的问题,IntPtr因为它们的大小相同(4 个字节)。问题出现在 64 位系统上 - 如果您使用int而不是IntPtr,它现在的大小错误(4 字节而不是 8 字节)并且可能导致错误。

于 2010-05-17T23:57:25.190 回答
1

我不相信这是真的。int是 的别名Int32。它们的含义完全相同,并将被编译为相同的 IL。

可以在此处找到别名列表。

于 2010-05-17T23:38:32.333 回答