从字符串添加到委托

本文关键字:添加 字符串 | 更新日期: 2023-09-27 18:21:49

我有很多方法

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

etc

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

class MyClass
{
    public delegate void Del();
    public Del MyDel;
    public MyClass(string myString)
    {
    }   
}

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

从字符串添加到委托

使用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() { }
}

是的,在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() 
    {}