「=>」演算子の概要を探します

asp.net-mvc
「⇒」演算子の概要を探します

MVCプロジェクトでサンプルのasp.netコードを参照していますが、⇒演算子のより良い理解が必要です。 ⇒を検索エンジンに接続することは役に立ちません。

thx

  3  0


ベストアンサー

`⇒`構文は、小さな関数であるhttp://msdn.microsoft.com/en-us/library/bb397687.aspx[lambda式]を作成します。

たとえば、次の行

Func myFunc = i => 2 * i;

「Func」型の変数(1つの整数を受け取り、別の整数を返すデリゲート)を宣言し、それを「i」というパラメーターを取るラムダ式に割り当てます(コンパイラーは、「i」が「int )そして、 2 * i`を返します。

5


Yoは* lambda *として検索できます。 こちらをご覧くださいhttp://msdn.microsoft.com/en-us/library/bb397687.aspx

3


前述のように、⇒演算子はラムダ式を表します。 これは、匿名デリゲートの省略形です。 実用的な例を次に示します。

コレクション内のすべてのPersonオブジェクトをフィルタリングして男性のみを返すようにする場合、Where()拡張メソッドにはFuncデリゲートが必要です。次のような名前付きデリゲートを作成できます。

    Func isMale = delegate(Person peep) { return peep.Gender == "male"; };
    var men = from p in peeps.Where(isMale)
              select p;

または、次のような匿名デリゲートを使用できます。

    var women = from p in peeps.Where(delegate(Person peep) { return peep.Gender != "male"; })
                select p;

ラムダを使用すると、次のようにショートハンドを使用して匿名デリゲートを宣言できます。

    var women = from p in peeps.Where(x => x.Gender != "male")
                select p;

delegate(Person peep)`と `x、および ‘return peep.Gender!=” male “`と’ x.Gender!= “male” `の対応に注意してください。

3


タイトルとURLをコピーしました