GCHandle 与 IntPtr¶
GCHandle
与 IntPtr
可以相互转换,但是这个 IntPtr
不是某一个内部对象的地址,而是把 handle
的信息编码进了 IntPtr
(native int)中。
例如,GCHandle
中的 IsPinned
私有方法是这样实现的:
// 注:handle 是一个 GCHandle
private static bool IsPinned(IntPtr handle)
{
return ((nint)handle & 1) != 0;
}
相关文章