Kii*_*Kii 7 .net c# clr cil function-pointers
在cil代码中,ldftn用于获取函数指针地址以调用委托构造函数(即.ctor(object,native int)).
如何在C#中获取用于构造委托的函数指针?
您的问题的措辞方式使得您很难理解您实际上要做的事情.我想也许你想要的是这样的:
MethodInfo mi = ...
var ptr = mi.MethodHandle.GetFunctionPointer();
// now call a delegate .ctor using that ptr
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找 Reflection.Emit 代码的外观,那么如下所示:
il.Emit(OpCodes.Ldftn, yourMethodInfo);
il.Emit(OpCodes.Newobj, yourDelegateType.GetConstructors()[0]);
Run Code Online (Sandbox Code Playgroud)
第一行将函数指针加载到堆栈上。第二行将其“传递”给委托的构造函数。 yourDelegateType应该是类似的typeof(Func<string>)东西