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

这是一个lambda 表达式- 创建匿名方法(即委托)的捷径。运营商=>goes to运营商。它将匿名方法参数与匿名方法体分开。


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

这里我们有匿名方法,它接受专辑作为参数。这张专辑进入 body,它返回专辑Price属性的值。与委托语法相同:

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

或使用命名方法:

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

如您所见,lambda 表达式语法是实现相同结果的最短形式。

于 2012-12-26T08:51:40.413 回答
0

您应该阅读此http://msdn.microsoft.com/en-us/library/bb397687.aspx

简单来说,Lambda 基本上是可用于创建委托或表达式类型的匿名函数。它基本上是编写代表的一种方便的简写方式(尽管这种方式过于简单化)

于 2012-12-26T08:52:31.490 回答