手柄有什么用? IntPtr

问题描述

| 我一直在阅读IntPtr,并已阅读它用于表示Handle(s)。这到底是什么意思?我敢肯定这是一个简单的解释,但此刻灯泡还没有打开。     

解决方法

这通常是指操作系统句柄,并在内部使用。例如,Windows窗体使用“ 0”来引用控件的本机窗口句柄(HWND)。 Windows API中的句柄用于许多用途-大多数与操作系统相关的资源(文件,套接字,窗口等)都通过句柄公开,该句柄实际上是指针。在托管代码中,这被存储在“ 0”中。 话虽这么说,“ 0”还经常在互操作场景中用于存储指针,因为它会根据32位或64位代码自动调整大小。     ,\“句柄\”是\“不透明指针\”。它是操作系统提供给应用程序以表示内部对象的值(通常只是一个数字,它是数组的索引),而不是为其提供指向实际对象的指针。出于安全和抽象方面的考虑,这迫使应用程序仅通过提供的API使用该句柄。