【发布时间】:2016-02-06 07:32:32
【问题描述】:
我在为这个实例方法创建正确的委托时遇到了一些麻烦:
public T AddComponent<T>() where T : Component
{
....
}
我正在使用反射来获取特定的 MethodInfo,并且在 Delegate.CreateDelegate 上我收到了与目标方法绑定的错误
private delegate T AddComponent<out T>();
private static AddComponent<Component> AddC { get; set; }
public void Test()
{
var go = new GameObject();
var targetAddComponent =
typeof (GameObject).GetMethods().First(m => m.Name == "AddComponent" && m.GetParameters().Length == 0);
AddC = (AddComponent<Component>) Delegate.CreateDelegate(typeof (AddComponent<Component>), go, targetAddComponent, true);
....
}
你对我做错了什么有任何线索吗?
【问题讨论】:
-
您将方法和委托命名为同一个东西,这令人难以置信。
标签: c# generics delegates covariance