C# · 12月 30, 2021

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

参见英文答案 > Func Delegate vs Function6
这是一个好奇的问题,你们都知道:

使用Func而不是方法有什么损害/缺点吗?简单的例子:

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

VS

private static List<T> Foo(int i1,int i2,DBContext dbc){ return i1 != 0 ? dbc.Bar(i2) : new List<T> { /*some default values …*/ };}解决方法 我看到严重的缺点:

>性能影响(代表vs方法) – 很小,但它在那里
>没有参数名称(伤害可调性调用)
>定义本身不太可读
>无法重载(谢谢xanatos)

因为你没有获得任何东西,我只会在本地和小的上下文中,并喜欢静态方法