c# - 32/64 位进程的 int 行为?

标签 c# .net .net-4.0 int

我是一个 64 位的进程,我的 int 大小是 8 个字节。

我正在引用一个编译为 32 位的 dll。

这个 dll 有一个接受 int 参数的函数。

会发生什么?

我要将 8 字节 发送到 4 字节“容器”?

最佳答案

不,在 64 位/C# 中,int 仍然是 4 个字节。

在 C# 中,int 始终 只是 global::System.Int32 的别名

将改变的是引用 大小和指针 大小,但无论如何这些都是由 IL 抽象出来的 - 无需更改。不过请注意,CLI 只会是 32 位 xor (nand?) 64 位。您可能需要其中之一作为“任何 CPU”。

关于c# - 32/64 位进程的 int 行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10992182/

相关文章:

c# - 另一个枚举与 int

c# - 如何在 C# 中短路 'or' 赋值?

c# - 使用反射获取字段初始化程序中使用的 ctor 参数

c# - 将字符串的值转换为 C# 中的类型

asp.net - 如何启动不监听本地主机的 ASP.NET Core 1.0 RC2 应用程序

c# - 具有默认值的 C# 参数如何为空?

c# - 在 ASP.NET 中使用 C# 的自定义验证器出现问题

c# - 为什么我的 IL 生成的程序集,C# 调用的 ilasm.exe 需要 UAC?

c# - 无法从程序集“mscorlib”加载类型 'System.Reflection.IntrospectionExtensions'

macos - 在 MonoDevelop/Mac 的新项目中出现错误 : Framework 'Mono/.NET 4.0' not installed.