1

私はMVC(c#)を初めて使用しますが、矢印や比較演算子のように見えるものの使用法のいくつかを知りません。それが何を意味するのかわかりません。

私はこれがMVCの多くの分野で使用されているのを見てきました(c#)

=>の略ですか?それは矢印ですか、それとも比較演算子ですか?

例1:

return storeDB.Albums.Orderby(a => a.Price)

例2:

.ForEach(a => context.Albums.Add(a));

例3:

bool isValid = storeDB.Orders.Any(o => o.OrderId == id && o.Username == User.Identity.Name);

例4:

var addedAlbum = storeDB.Albums.Single(album => album.AlbumId == id);

例5:

@Html.HiddenFor(model => model.Id)

わかりやすく簡単に説明してください。ありがとう。

4

2 に答える 2

3

これはラムダ式です-匿名メソッド(つまりデリゲート)を作成するためのショートカットです。演算子=>goes to演算子です。これは、匿名メソッドのパラメーターを匿名メソッドの本体から分離します。


storeDB.Albums.Orderby(a => a.Price)

ここに、アルバムをパラメーターとして受け入れる匿名メソッドがあります。Priceこのアルバムは本体に送られ、アルバムのプロパティの値が返されます。デリゲート構文と同じ:

delegate(Album a) { return a.Price; }

または名前付きメソッドを使用:

private decimal GetAlbumPrice(Album a)
{
    return a.Price;
}

ご覧のとおり、ラムダ式の構文は、同じ結果を達成するための最短の形式です。

于 2012-12-26T08:51:40.413 に答える
0

このhttp://msdn.microsoft.com/en-us/library/bb397687.aspxを読む必要があります。

簡単に言うと、ラムダは基本的に無名関数であり、デリゲートまたは式の型を作成するために使用できます。これは基本的にデリゲートを書くための便利な速記です(これは単純すぎる方法ですが)

于 2012-12-26T08:52:31.490 に答える