C#:Func<> 而不是方法?

标签 c# .net linq c#-4.0 func

<分区>

这是给所有知情人士的好奇问题:

使用 Func 而不是方法有任何危害/缺点吗?简单示例:

private static Func<int, int, DBContext, List<T>> Foo =
    (i1, i2, dbc) =>
        (i1 != 0) ? dbc.Bar(i2) : new List<T> { /*some default values ...*/ };

对比

private static List<T> Foo(int i1, int i2, DBContext dbc)
{
    return i1 != 0 ? dbc.Bar(i2) : new List<T> { /*some default values ...*/ };
}

最佳答案

我看到了几个缺点:

  • 性能影响(委托(delegate)与方法)- 很小但确实存在
  • 没有参数名称(影响调用的可读性)
  • 定义本身的可读性较差
  • 不可能过载(感谢 xanatos)

因为你一无所获,我只会在本地和小型环境中这样做,并且更喜欢静态方法

关于C#:Func<> 而不是方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7172038/

相关文章:

c# - IQueryable 和 List<int> 之间的 Linq 连接执行时间太长

c# - 如何在存储到数据库中之前减小图像的大小 C#

.net - 如何让辅助角色应用程序访问Web角色实例中的文件

c# - Entity Framework - LINQ 的 SQL 命令

c# - LINQ:将查询表达式转换为使用 lambda

c# - 从分层集合中删除项目

c# - 找不到转换器的资源

c# - 嵌套对象上的Elasticsearch过滤器范围

c# - 我收到此错误消息 : Access denied for user (Using password YES)

c# - 通过 EF 中的计算属性查询