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 に答える