我不能通过func <t1,t2>获得c#方法名称

时间:2016-05-12 07:19:18

标签: c#

public static string GetFuncName<T1, T2>(Func<T1, T2> func){
    return func.Method.Name;
}

我使用此代码可以得到&#34; string function(string)&#34;结构方法名称。

但我无法获得&#34; void function()&#34;结构方法名称。

  

&#34; GetFuncName(XXX)&#34;抛出伏特错误。

我需要得到&#34; void function()&#34;最后说出来。

2 个答案:

答案 0 :(得分:1)

对于void,您需要Action<>类型的委托,而不是Func委托。

所以你需要另一种方法

public static string GetActionName<T1>(Action<T1> action){
    return action.Method.Name;
}

答案 1 :(得分:0)

您始终可以通过Delegate.Method.Name获取方法名称。 IMO你的方法不一定是通用的。

public static string GetDelegateName(Delegate instance)
{
    return instance.Method.Name;
}