当方法被称为选择其代表是正确它

问题描述:

这是函数,其检查该委托应绑定到该方法中:它检查 Description is here当方法被称为选择其代表是正确它

private static bool IsEquivalent(Delegate d, MethodInfo method) 
{ 
    var dm = d.Method; 
    if (!method.ReturnType.IsAssignableFrom(dm.ReturnType)) 
     return false; 
    var parameters = method.GetParameters(); 
    var dp = dm.GetParameters(); 
    if (parameters.Length != dp.Length) 
     return false; 
    for (int i = 0; i < parameters.Length; i++) 
    { 
     //BUG: does not take into account modifiers (like out, ref...) 
     if (!parameters[i].ParameterType.IsAssignableFrom(dp[i].ParameterType)) 
      return false; 
    } 
    return true; 

}

这里该方法返回类型和方法参数类型与委托所指向的函数相同。 但是如果有多个具有相同参数类型的函数呢? 我们该如何处理这种情况? 是否有可能读取某个代表指向的函数名称?

代表实际上没有名称属性。正如我在我的项目中采用此代码时所做的那样,更好的方法是让包含传递委托的类作为其方法。通过这种方式,您可以传递该类的实例而不是所有这些委托参数,并将类方法的名称与调用方法名称进行比较。