【发布时间】:2019-10-11 11:54:49
【问题描述】:
在C#中,如何将一个方法作为另一个方法的参数传递,通过将参数与被调用的方法一起传递,以便在内部调用该方法,例如,目标是测量其执行情况?
代码可以接近下面的伪代码吗?
public TR MeasureExecutionTime<T1, T2, T3, T4, T5, T6, TR>(this Func<T1, T2, T3, T4, T5, T6, TR> func, out long executionTime)
{
Stopwatch stopwatch = Stopwatch.StartNew();
TR tr = func();
stopwatch.Stop();
executionTime = stopwatch.ElapsedMilliseconds;
return tr;
}
...
var result = MeasureExecutionTime(() => obj.Process(p1, p2, p3, p4, p5, p6), out long executionTime);
这里的主要问题似乎是如何传递和推导被调用者参数p1,p2,p3,p4,p5,p6。这怎么能写得尽可能灵活和简单?
【问题讨论】: