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