IntPtr到Int - C#

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IntPtr到Int - C#相关的知识,希望对你有一定的参考价值。

我有这个代码:

public uint StringsSize { get; set; }
byte[] buffer = new byte[(IntPtr) XSC.header.StringsSize];

返回以下错误:

“无法显式地将类型'intptr'转换为'int'。存在显式转换(您是否错过了转换?)”

任何关于解决这个问题的真正指导都会受到赞赏,这次使用这个工具会让我感到很困扰。另外,如果这是一个重复的问题,我很抱歉,在几次Google搜索后我无法找到简单的修复/解决方案。

答案

将IntPtr转换为int类型,如下所示:

var buffer = new byte[((IntPtr) XSC.header.StringsSize).ToInt64()];
另一答案

你可以尝试这样:

int numInt = intPtrVar.ToInt32();

以上是关于IntPtr到Int - C#的主要内容,如果未能解决你的问题,请参考以下文章

为啥/何时使用 `intptr_t` 在 C 中进行类型转换?

IntPtr 大小的问题

Unity c#intptr到没有大小信息的字节数组[重复]

如何在C#中将IntPtr转换为字节数组?

intptr_t 指针

如何通过 IntPtr 将 c++ 数组编组为 c#