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,我尝试过使用 Delegates,但它不允许将其用作参数。

4

1 回答 1

4

使用Action委托执行返回 void 的方法:

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 回答