我一直在阅读IntPtr,并已阅读它用于表示句柄。这究竟是什么意思?我确信这是一个简单的解释,但是灯泡现在还没有开启......
答案 0 :(得分:6)
A"手柄"是一个"不透明指针"。它是一个值(通常只是一个数组,它是一个数组的索引),操作系统给应用程序表示一个内部对象,而不是给它一个指向实际对象的指针。这是出于安全和抽象的原因 - 它强制应用程序仅通过提供的API来使用句柄。
答案 1 :(得分:6)
这通常是指操作系统Handle,并在内部使用。例如,Windows窗体使用IntPtr
来引用Control的本机窗口句柄(HWND)。
Windows API中的句柄用于许多事情 - 大多数与操作系统相关的资源(文件,套接字,窗口等)都通过句柄公开,这实际上是一个指针。在托管代码中,它存储在IntPtr
。
话虽如此,IntPtr
也经常用于在互操作场景中存储指针,因为它会根据32位或64位代码自动调整大小。