2

私は C# でラムダをよく使用しています (多くのフレーバーの LINQ、ASP.NET MVC の厳密に型指定されたヘルパー、AutoMapper API など)。それらを使って何ができるか考えてみましょう。ほとんどの場合、直感的に使用します。

これに関する参照またはクイック(ただし完全な)ガイドはありますか。私は MSDN リファレンスを探しているわけではありませんが、C# のすべての機能をまとめて簡単に説明します。ブログ投稿へのリンクがいくつかあるリストに絞り込むことができれば、それも許容されます。

質問が閉じられた後の更新: 私の長い説明は明確ではなかったようです. 受け入れられた答えは私が必要とするものです、ありがとう。

4

2 に答える 2

5

これは、C# で導入された機能について説明している素敵な CodeProject の記事です。また、各機能のわかりやすい例もあります。

C# での関数型プログラミング

この記事では、関数とファースト クラスの値の説明と例を示します。

  • 関数型 - デリゲート、ジェネリック関数型、述語、アクション
  • 関数の値 - 関数をパラメーターとして格納および渡す
  • 関数演算 - 関数の加算と減算

その後、この記事では C# での関数型プログラミングについて説明し、次の点を取り上げます。

  • 関数を使用してジェネリック コンストラクトを作成する
  • LINQ の使用
  • 高次関数 - 他の関数を処理する関数、関数合成
  • 非同期関数 - 、、、およびコールバックで非同期関数を使用する方法について説明BeginInvokeしますIsCompletedEndInvoke
  • タプル - 動的データ構造
  • Closures - デリゲートとラムダ関数の変数のスコープを説明し、データの共有とキャッシュについても説明します
  • 高階関数を使用した再帰
  • 部分関数 - デフォルト値を使用して関数の引数の数を減らす
  • カリー関数 - N 個の引数関数を N 個の単一引数関数に分割する
于 2012-06-10T07:10:39.350 に答える
0

その側面が明示的にカバーされていなかったので、Ove によってリンクされた記事に追加するだけです。

関数構造を使用すると、実行シーケンスをコードの記述シーケンスから分離できます。これは、定義されたラムダの呼び出しが、プログラムがラムダを認識したとき以外のときに発生する可能性があるためです。

これは少し直感的ではない場合があります (LINQ での遅延実行) が、通常は、異なる時間に実行される場合でも、関連付けられたコードを一緒に保持する自由が与えられます。

于 2012-06-10T07:21:50.007 に答える