我是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)
请用简单的术语来解释。感谢。
答案 0 :(得分:3)
这是lambda expressions - 用于创建anonymous methods(即代表)的捷径。运营商=>
是goes to
运营商。这将匿名方法参数与匿名方法体分开。
storeDB.Albums.Orderby(a => a.Price)
这里我们有匿名方法接受相册作为参数。此专辑进入正文,返回专辑Price
属性的值。与委托语法相同:
delegate(Album a) { return a.Price; }
或使用命名方法:
private decimal GetAlbumPrice(Album a)
{
return a.Price;
}
如您所见,lambda表达式语法是实现相同结果的最短形式。
答案 1 :(得分:0)
你应该阅读http://msdn.microsoft.com/en-us/library/bb397687.aspx。
Lambda简单来说基本上是匿名函数,可用于创建委托或表达式类型。它基本上是编写代表的一种方便的简写(虽然这种方式过于简单了)