0

以下の 2 つの方法の違いは何ですか? どちらもまったく同じ (私の知る限り) を返します。

以下の2つの方法のいずれかが望ましい特定のケースはありますか? 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>、2 つの整数を取り、整数を返す関数 (そのような関数) のデリゲートを意味します。

の場合addThings、計算はすぐに実行され、結果が返されます。

の場合addMoreThings関数が返されます。後で呼び出すことができます。

より多くのコンテキストがなければ、一方を他方よりも推奨することは困難です.デリゲートバージョンを使用すると、たとえばデリゲートに戦略を割り当てるなどして、戦略パターンを使用するのを怠ることができます.

于 2012-12-01T20:11:30.537 に答える