2

我的问题是我有一个类,其构造函数将 System.Delegate 对象作为参数,我不知道如何将方法分配给 System.Delegate 对象。这是我现在拥有的代码

class TestClass
{
    Delegate c = TestMetod;
    static void TestMetod()
    {
        MessageBox.Show("it worked !");
    }
}

但这不起作用,因为奇怪的是,System.Delegate 是 msdna 所述的非委托类型。我应该怎么做我需要的,因为不可能“将方法组TestMetod分配给非委托类型'System.Delegate'”

4

1 回答 1

5

static方面不是这里的核心问题。您需要一个(任何)委托来捕获 TestMethod,然后您可以将其分配给 System.Delegate。您可以将Action其用作这样的中间体。

class TestClass
{
    static Action a = TestMetod;
    static Delegate c = a;
    static void TestMetod()
    {
        MessageBox.Show("it worked !");
    }
}
于 2013-04-26T15:31:20.523 回答