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