从字符串添加到委托

时间:2014-09-13 16:49:25

标签: c# delegates

我有很多方法

public void A(){}
public void B(){}

然后我想在字符串构造函数之后将一个(或多个)这些方法添加到我的类的实例中:

class MyClass
{

    public delegate void Del();
    public Del MyDel;

    public MyClass(string myString)
    {

    }   
}

在构造函数中,我希望能够将名为myString的类方法添加到我的委托中,是否可能?

2 个答案:

答案 0 :(得分:0)

使用Delegate.CreateDelegate()方法

class MyClass
{

    public delegate void Del();
    public Del MyDel;

    public MyClass(string myString)
    {
        MyDel = (Del)Delegate.CreateDelegate(typeof(Del), this, myString);
    }

    public void A() { }
    public void B() { }
}

答案 1 :(得分:0)

是的,在匿名方法中放置一个断点,在A()和B()

    public delegate void Del();
    public Del MyDel;

    public MainWindow(string imAStringSentToAConstructorBySomeone)
    {         
        // Edit :

       MyDel += (Del)Delegate.CreateDelegate(typeof(Del), this,imAStringSentToAConstructorBySomeone);

       // Full Answer
        MyDel += () => 
        { 

        };

        MyDel += (Del)Delegate.CreateDelegate(typeof(Del), this, "A");
        MyDel += (Del)Delegate.CreateDelegate(typeof(Del), this, "B");

        MyDel.Invoke();
    }

    public void A() 
    {}

    public void B() 
    {}