0

void または int/string/bool(値を返す) を動的に渡したい。

Delay(MyVoid);//I wont to execute a delay here, after the delay it will execute the the param/void like so...
public static void MyVoid()
{
    MessageBox.Show("The void has started!");
}
public async Task MyAsyncMethod(void V)
{
    await Task.Delay(2000);
    V()
}

ps、デリゲートを使用してみましたが、パラメーターとして使用できません。

4

1 に答える 1

4

デリゲートを使用して、Actionvoid を返すメソッドを実行します。

public async Task MyAsyncMethod(Action V)
{
    await Task.Delay(2000);
    V();
}

またはFunc<T>、何らかの値を返すメソッドの場合

public async Task MyAsyncMethod(Func<int> V)
{
    await Task.Delay(2000);
    int result = V();
}
于 2013-07-18T04:04:13.837 に答える