下面两种方法有什么区别?它们都返回完全相同(据我所知)所以我想知道为什么人们宁愿使用另一个呢?
是否存在以下两种方法中的一种更可取的特定情况?
或者是否有任何情况下使用func<>
比使用普通方法更好?
private static int addThings(int x, int y)
{
return x*y;
}
private static Func<int,int,int> addMoreThings = (x,y) =>
{
return x*y;
};
答案 0 :(得分:2)
Func
是委托 - (C ++程序员会称之为强类型函数指针)。
Func<int,int,int>
表示获取两个整数并返回整数的函数的委托 - 任何此类函数。
在addThings
的情况下,立即进行计算并返回结果。
如果是addMoreThings
,则返回函数。稍后可以调用。
很难在没有更多上下文的情况下推荐一个 - 让委托版本允许你懒惰 - 使用策略模式,例如通过将策略分配给委托。