C# 如何将函数作为参数传递?
C# How can I pass a function as a argument?
我一直在寻找如何完成这项工作。
例如:
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() 喜欢这个秒表分析器吗?这种东西你给我起个名字我也能查到
谢谢!
您正在传递类型为 void (int)
的函数,在 C# 中为:
Action<int>
因此,将您的 ***Function myFunctionName***
替换为 Action<int> myFunctionName
,您应该会很好。 Action
类型接受从 0 到几个通用参数,对应于参数的类型。
如果您的函数 return 编辑了 void
以外的内容,您将使用 Func<...>
通用类型。最后一个通用参数是 return 类型。
我一直在寻找如何完成这项工作。 例如:
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() 喜欢这个秒表分析器吗?这种东西你给我起个名字我也能查到
谢谢!
您正在传递类型为 void (int)
的函数,在 C# 中为:
Action<int>
因此,将您的 ***Function myFunctionName***
替换为 Action<int> myFunctionName
,您应该会很好。 Action
类型接受从 0 到几个通用参数,对应于参数的类型。
如果您的函数 return 编辑了 void
以外的内容,您将使用 Func<...>
通用类型。最后一个通用参数是 return 类型。