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 类型。