添加到代表从字符串

问题描述:

我有许多方法添加到代表从字符串

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

然后我想补充的这些方法,我的类的实例一个(或多个)以下的字符串构造函数:

class MyClass 
{ 

    public delegate void Del(); 
    public Del MyDel; 

    public MyClass(string myString) 
    { 

    } 
} 

我希望能够加入到我的代表提出的myString类方法在构造函数中,这可能吗?

+0

该字符串必须标识*对象*因为这些方法不是静态的。这不切实际。 – 2014-09-13 18:06:38

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

和哪里会是我的字符串? – user3161621 2014-09-13 18:29:12

+0

请看我的讽刺编辑 – 2014-09-13 18:36:44

+0

所以基本上你复制上面的答案...什么是MyDel + =()=> { };不同于它? – user3161621 2014-09-13 18:43:03