C# 将函数作为参数传递

标签 c#

<分区>

不幸的是,我看不到类似的问题,所以

我必须执行许多类似的函数,我想创建一个接受函数作为参数的函数,例如

    int Search (Func<bool> func)
    {
        int start = Environment.TickCount;
        func();
        int end = Environment.TickCount;
        return end - start;
    }

    void SearchTime()
    { 
        int time1 = Search(list.Contains(item));
        int time2 = Search(dictionary.ContainsKey(anotheritem));
        /* some more code */
    }

但实际上它说的论点似乎不对。

UPD:错误提示:最合适的重载方法有一些无效参数

最佳答案

您尝试发送到方法中的不是委托(delegate)。

您可以使用 lambda 表达式为方法创建委托(delegate):

int time1 = Search(() => list.Contains(item));
int time2 = Search(() => dictionary.ContainsKey(anotheritem));

() 表示零输入参数。

关于C# 将函数作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822551/

相关文章:

c# - 使用后面的 C# 代码在新选项卡而不是窗口中打开 URL

c# - ASP.NET MVC 中的问题模型绑定(bind)嵌套列表

c# - 使用小于/大于符号(< 和 >)填充文本框

c# - 无法在sqlite中打开数据库文件(使用finisar.sqlite)

c# - WP8 WebBrowser 作为全景图/枢轴项目

c# - 在 asp.net 网站的 javascript 中提醒俄语文本

c# - 在 C# Windows 窗体应用程序项目中更改自动生成的代码

c# - 将变量相乘而不重写

c# - .NET DataGrid 复制/粘贴

c# - WPF 列表框项目消耗太多内存