委托不包含"创建委托"的定义



使用Unity 2018-2017在为网络构建时遇到相同问题-错误CS0117:"Delegate"不包含"CreateDelegate"的定义这是一种方法:

private V CreateDelegate<V>(MethodInfo method, Object target) where V : class
{
var ret = (Delegate.CreateDelegate(typeof(V), target, method) as V);
if (ret == null)
{
throw new ArgumentException("Unabled to create delegate for method called " + method.Name);
}
return ret;
}

UWP大楼。使用系统。林克我试过使用"MethodInfo",但可能有些参数是错误的。这种方法不可用?

您的目标平台/运行时是什么?我不知道Mono,但.Net标准1.x不支持Delegate.CreateDelegate。请始终记住,您是针对.Net框架的有限子集编写代码的。还要记住,您的代码将不可避免地在某些平台(il2cpp、iOS等(上进行AOT编译,因此一些反射/发射功能将不可用。

注意:AOT的意思是提前,意味着你的代码被编译成机器指令,而不是中间语言。反射是指将代码本身用作数据,因此例如可以获得类定义的属性列表。Emit意味着在运行时生成代码。如果你不明白这些是什么,你可能应该做一些研究。从长远来看,这是非常值得的

1。您的返回类型是类,而不是委托

where V : class

所以这种方法根本没有意义。您将得到一个无效的强制转换异常。

2.CreateDelegate取2个参数,而不是3个

我甚至不确定target在这里有什么作用,所以我甚至猜不出你想做什么。

最新更新