1

この関数をプログラムで機能させたいのですが、Visual Studioから、MyFuncは変数であるがメソッドのように使用されると言われますが、それが私がやろうとしていることです。それを呼び出そうとしています。

static private void TryThisFunc(Delegate MyFunc)
{
   try
   {
       MyFunc(); // MyFunc is a variable but is used like a method
   }
   catch (Exception ex)
   {
       Console.WriteLine(ex.Message);
   }
}
4

1 に答える 1

8

使用するデリゲートのタイプを指定していません。パラメータを受け取るデリゲートである可能性があります。その場合、引数なしで呼び出すことはできません。おそらく、特定のデリゲートタイプを使用したいと思うでしょう。

static private void TryThisFunc(Action action)
{
    try
    {
        action();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}
于 2012-10-25T19:25:03.020 に答える