我想知道Marshal.GetFunctionPointerForDelegate.即我想知道它如何将委托转换为非静态函数到函数指针.
它是否动态生成以某种方式附加实例的代码存根?如果是这样,这不是泄密记忆吗?也许代表在终结器中解放了它?
它看起来不像System.Delegate有一个终结器,所以我对这个机制的工作原理非常感兴趣.我假设函数指针需要4个字节,实例需要4个字节(32位),但它返回一个简单的IntPtr.
.net c# clr unsafe marshalling
.net ×1
c# ×1
clr ×1
marshalling ×1
unsafe ×1