我可以使一个函数接受通用函数作为参数吗?

内森·坦珀曼

假设我正在对许多不同的函数进行基准测试,而我只想调用一个函数来运行foo n次。

当所有函数具有相同的返回类型时,您可以执行

static void benchmark(Func<ReturnType> function, int iterations)
{
    Console.WriteLine("Running {0} {1} times.", function.Method.Name, iterations);
    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();
    for (int i = 0; i < iterations; ++i)
    {
        function();
    }
    stopwatch.Stop();
    Console.WriteLine("Took {0} to run {1} {2} times.", stopwatch.Elapsed, function.Method.Name, iterations);
}

但是,如果我要测试的函数具有不同的返回类型怎么办?我可以接受泛型类型的函数吗?我尝试使用,Func <T>但不起作用。

乔恩·斯基特

您当然可以使其通用:

static void Benchmark<T>(Func<T> function, int iterations)

您可能还需要重载它来接受Action,对void方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使用成员函数作为EnumWindows的第一个参数吗

来自分类Dev

我可以使用成员函数作为EnumWindows的第一个参数吗

来自分类Dev

我可以使用返回值作为参数多次运行同一个函数吗?

来自分类Dev

我可以使用DataKinds编写一个返回参数编码类型的值的函数吗?

来自分类Dev

我可以将函数调用作为参数传递给另一个函数吗?Python

来自分类Dev

我可以使用void *作为函数的参数吗?

来自分类Dev

您可以使一个函数接受两种不同的数据类型吗?

来自分类Dev

我可以创建一个多态的 `mult` 函数,它接受任何数字类型吗?

来自分类Dev

如何创建一个接受带有特定参数作为参数的函数的函数?

来自分类Dev

我可以使一个函数返回列表中的多个值吗?

来自分类Dev

我可以使用另一个类内部的函数中的变量吗?

来自分类Dev

我可以将一个函数和不同数量的参数传递给另一个函数吗?

来自分类Dev

XSLT:我可以创建一个自己作为模板的函数库吗?

来自分类Dev

我们可以训练一个模型作为平方函数吗

来自分类Dev

实现一个接受两个不同类的参数的通用函数?

来自分类Dev

我们可以有一个由名称参数函数组成的数组吗?

来自分类Dev

我们可以在ocaml中定义一个参数为0的函数吗?

来自分类Dev

我可以创建一个过程或函数来删除mysql中的参数表吗?

来自分类Dev

我可以将模板函数用作另一个模板的参数吗?

来自分类Dev

我们可以有一个由名称参数函数组成的数组吗?

来自分类Dev

如何创建一个接受不同参数类型的通用函数

来自分类Dev

传递一个接受任意数量和类型参数的函数作为类模板参数

来自分类Dev

强制转换列表类型,以便一个函数可以接受更通用的列表类型

来自分类Dev

我可以使用const&作为constexpr函数的参数吗?

来自分类Dev

Powershell:我可以使用现有的枚举作为自己函数的参数吗?

来自分类Dev

我可以使用变量的值作为函数的参数名称吗?

来自分类Dev

我可以使用std :: string * argv作为主要函数参数吗?

来自分类Dev

我可以使用命名参数作为变量在python中调用函数吗?

来自分类Dev

swift while循环可以使用函数作为参数吗?

Related 相关文章

  1. 1

    我可以使用成员函数作为EnumWindows的第一个参数吗

  2. 2

    我可以使用成员函数作为EnumWindows的第一个参数吗

  3. 3

    我可以使用返回值作为参数多次运行同一个函数吗?

  4. 4

    我可以使用DataKinds编写一个返回参数编码类型的值的函数吗?

  5. 5

    我可以将函数调用作为参数传递给另一个函数吗?Python

  6. 6

    我可以使用void *作为函数的参数吗?

  7. 7

    您可以使一个函数接受两种不同的数据类型吗?

  8. 8

    我可以创建一个多态的 `mult` 函数,它接受任何数字类型吗?

  9. 9

    如何创建一个接受带有特定参数作为参数的函数的函数?

  10. 10

    我可以使一个函数返回列表中的多个值吗?

  11. 11

    我可以使用另一个类内部的函数中的变量吗?

  12. 12

    我可以将一个函数和不同数量的参数传递给另一个函数吗?

  13. 13

    XSLT:我可以创建一个自己作为模板的函数库吗?

  14. 14

    我们可以训练一个模型作为平方函数吗

  15. 15

    实现一个接受两个不同类的参数的通用函数?

  16. 16

    我们可以有一个由名称参数函数组成的数组吗?

  17. 17

    我们可以在ocaml中定义一个参数为0的函数吗?

  18. 18

    我可以创建一个过程或函数来删除mysql中的参数表吗?

  19. 19

    我可以将模板函数用作另一个模板的参数吗?

  20. 20

    我们可以有一个由名称参数函数组成的数组吗?

  21. 21

    如何创建一个接受不同参数类型的通用函数

  22. 22

    传递一个接受任意数量和类型参数的函数作为类模板参数

  23. 23

    强制转换列表类型,以便一个函数可以接受更通用的列表类型

  24. 24

    我可以使用const&作为constexpr函数的参数吗?

  25. 25

    Powershell:我可以使用现有的枚举作为自己函数的参数吗?

  26. 26

    我可以使用变量的值作为函数的参数名称吗?

  27. 27

    我可以使用std :: string * argv作为主要函数参数吗?

  28. 28

    我可以使用命名参数作为变量在python中调用函数吗?

  29. 29

    swift while循环可以使用函数作为参数吗?

热门标签

归档