Func <x,y>和Method(x,y)之间有什么区别?</x,y>

时间:2012-12-01 20:09:26

标签: c#

下面两种方法有什么区别?它们都返回完全相同(据我所知)所以我想知道为什么人们宁愿使用另一个呢?

是否存在以下两种方法中的一种更可取的特定情况? 或者是否有任何情况下使用func<>比使用普通方法更好?

 private static int addThings(int x, int y)
 {
  return x*y;
 }

 private static Func<int,int,int> addMoreThings = (x,y) =>
 {
  return x*y;
 };

1 个答案:

答案 0 :(得分:2)

Func委托 - (C ++程序员会称之为强类型函数指针)。

Func<int,int,int>表示获取两个整数并返回整数的函数的委托 - 任何此类函数。

addThings的情况下,立即进行计算并返回结果。

如果是addMoreThings,则返回函数。稍后可以调用

很难在没有更多上下文的情况下推荐一个 - 让委托版本允许你懒惰 - 使用策略模式,例如通过将策略分配给委托。