【问题标题】:Does "Environment.Is64BitProcess" equal to "IntPtr.Size == 8"?“Environment.Is64BitProcess”是否等于“IntPtr.Size == 8”?
【发布时间】:2021-08-06 12:50:56
【问题描述】:

既然“IntPtr.Size”是根据当前进程来检查int指针的大小,是不是和“Environment.Is64BitProcess”一样?

如果是,为什么我只能看到“return true/false”(如果您使用 dnSpy 从“System”重构代码)?

如果不是,它们之间有什么区别吗?在哪里使用什么?

【问题讨论】:

  • 个人意见:始终使用Environment.Is64BitProcess,因为您要检查的内容非常清楚。使用IntPtr.Size 需要更多思考才能了解正在发生的事情。

标签: .net environment intptr


【解决方案1】:

在现代运行时(网络核心)中,Is64BitProcess 是通过IntPtr.Size == 8 定义的。见source

您看到 false 是因为您正在检查 32 位 mscorlib。 64位位于C:\Windows\Microsoft.NET\Framework64\v4.0.30319,总是返回true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 2021-05-02
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多