如何在委托方法中获取委托名称?

时间:2014-09-10 05:09:03

标签: c# delegates

如何在委托方法中获取委托名称?

这是我的测试程序:

namespace Test
{
    class Program
    {
        public Action action;

        void real()
        {
            // I hoped it would output "action" here, but it was "real"
            Console.WriteLine(MethodInfo.GetCurrentMethod().Name);
        }

        public Program()
        {
            action = real;
        }

        static void Main(string[] args)
        {
            Program pr = new Program();
            pr.action();
        }
    }
}

那么我怎样才能获得委托action的名称而不是方法read

我已经尝试了MethodInfo.GetCurrentMethod(),但它没有用。

1 个答案:

答案 0 :(得分:1)

考虑

static void Main(string[] args)
{
    Program pr = new Program();
    Action tempName1 = pr.action;
    Action tempName2 = tempName1;

    //pr.action();
    tempName2();
}

您希望获得哪个名称? tempName1,tempName2,pr.action还是只是动作?

根据这些选择,您无法获得明确的变量名称。