0

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

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

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

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

1 回答 1

2

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

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

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

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

在没有更多上下文的情况下很难推荐一个而不是另一个 - 拥有委托版本可以让您变得懒惰 - 使用策略模式,例如通过将策略分配给委托。

于 2012-12-01T20:11:30.537 回答