日期:2014-05-19  浏览次数:20799 次

c# 中如何将一个方法的名称作为另一个方法的参数?
如以下的类中,如何将MethodName2作为参数,传递给MethodName      

public   class   Class1
        {
                public   void   MethodName(??)
                {
                       
                }
                public   void   MethodName2()
                {
                       
                }

        }

------解决方案--------------------
请使用委托!

// 定义委托,原型与欲包装方法原型一样
public delegate void Method2Callback(string message);

public class Class1
{
public void Method1(string message, Method2Callback cb)
{
cb(message);
}

public void Method2(string message)
{
Console.WriteLine(message);
}

}

// 调用
Class1 c = new Class1();
Method2Callback cb = new Method2Callback(c.Method2);
c.Method1( "Hello ", cb);



------解决方案--------------------
虽然可以通过反射得到方法的名字,不过还是不大清楚楼主要做什么
------解决方案--------------------
用反射得到方法名,太费时了...
------解决方案--------------------
你什么用途亚,这个要求真怪