我一直在寻找一段时间来完成这项工作。 例如:
CheckPerformance(***Loop***);
private void CheckPerformance(***Function myFunctionName***)
{
sw.Start();
myFunctionName(200);
sw.Stop();
Console.WriteLine("Elapsed in check: {0}", sw.Elapsed);
}
private void Loop(int n)
{
for (int i = 0; i < n; i++)
{
int number = i;
}
}
我如何能够将 Loop 作为参数传递给动态将函数放入 CheckPerformance() 这样的秒表分析器?即使你给我这个类型的名字,我也可以查一查。
谢谢!
答案 0 :(得分:2)
您正在传递类型为void (int)
的函数,该函数在C#中为:
Action<int>
所以,将您的***Function myFunctionName***
替换为Action<int> myFunctionName
,您应该做得很好。 Action
类型从0到几个通用参数,对应于参数的类型。
如果您的函数返回void
以外的其他内容,则可以使用Func<...>
泛型类型。最后一个通用参数是返回类型。