首先说明一下,我不是在问委托的问题。
像下面这样,
MethodInvoker mi = new MethodInvoker(myMethod);
myMethod是一个函数名。我想在写自己的代码的时候,也能像上面这样,但是是以函数名作为函数的参数,有没有可能实现?我知道可以用委托,但是我不是在问委托,就是一个想法,单纯地用函数名作参数。
表达能力差,希望我已经把我的问题说明白了。先谢谢啦!

解决方案 »

  1.   

    可以,用反射MethodInfo method = this.GetType().GetMethod(myMethod);
            method.Invoke(this, new object[] {});
      

  2.   

    可以,不过其实还是委托
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace WindowsApplication269
    {
        unsafe public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();            B(A);
            }        void A()
            {
                MessageBox.Show("a"); 
            }        delegate void X();        void B(X x)
            {
                x.Invoke();
            }
        }
    }
      

  3.   

    谢谢五楼,我要的是这个效果,没想到最后还是委托,汗一个,呵呵。
    不过还有一点不明白,在我创建一个委托的实例的时候,还以 MethodInvoker mi = new MethodInvoker(myMethod)为例,这里不应该是委托吧?