このコードは、パラメーターなしで単一の関数を受け取り、そのランタイムを返します。
public static Stopwatch With_StopWatch(Action action)
{
var stopwatch = Stopwatch.StartNew();
action();
stopwatch.Stop();
return stopwatch;
}
パラメータを使用して無効でない関数を取るように変換したいと思います。Func<> デリゲートについて聞いたことがありますが、使い方がわかりません。そして、私はこのようなものが必要です(非常に疑似):
public T measureThis(ref Stopwatch sw, TheFunctionToMeasure(parameterA,parameterB))
{
sw.Start(); // start stopwatch
T returnVal = TheFunctionToMeasure(A,B); // call the func with the parameters
stopwatch.Stop(); // stop sw
return returnVal; // return my func's return val
}
したがって、渡された関数の戻り値を取得し、最後にストップウォッチを取得する必要があります。 どんな助けでも大歓迎です!