private static Func<KeyValuePair<double, PrintLevelDetails>, double> func_0;
...
func_0 = new Func<KeyValuePair<double, PrintLevelDetails>, double>(null, (IntPtr) smethod_0);
...
private static double smethod_0(KeyValuePair<double, PrintLevelDetails> keyValuePair_0)
{
return keyValuePair_0.Key;
}
反编译代码错误:
CS0428 无法将方法组“smethod_0”转换为非委托类型“System.IntPtr”。您是否打算调用该方法?
你的反编译器是错误的。
尝试手动执行:
在 IL 中创建委托时,通常使用其构造函数,它带有一对参数 (object, IntPtr) - 一个对象和一个指向其方法的指针。
在C#代码中,你应该改用这种形式
object.Method(在静态方法的情况下,你可以写一个类而不是对象,或者如果它是当前类的方法什么都不写):或者