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

  • 本文关键字:区别 Func Method 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;
 };

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

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

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

addMoreThings 的情况下,返回函数。稍后可以调用它。

如果没有更多的上下文,很难推荐一个而不是另一个 - 拥有委托版本会让你懒惰 - 使用策略模式,例如通过将策略分配给委托。

最新更新