2010-05-27 187 views
2

我有一个漂亮的菜鸟问题。我一直看到这个语法:“=>”是什么意思?

<%= Html.LabelFor(model => model.Email) %> 

......我不知道=>的含义。我认为这是linq2sql或ado.net实体框架的语法,但我只是使用直接ado.net。我不明白为什么VWD在生成Create窗体时使用了这种语法。

=>是什么意思?

+0

[我如何在.Net中的lambda表达式中使用“=>”(http://stackoverflow.com/问题/ 274022/how-do-i-pronounce-as-used-in-lambda-expressions-in-net) – 2010-05-27 20:35:29

回答

8

它是一个lambda表达式它的意思是“去”

这是一个相当不错的链接解释here

左侧是输入右侧的表达式或语句块,给你调用LabelFor方法输入模型并使用传入的模型上的电子邮件字段。

+0

为什么不把它写成Html.LabelFor(Model.Email)? – quakkels 2010-05-27 19:22:00

+1

@quakkels因为LabelFor的签名只接受一个表达式作为它唯一的参数而不是一个字符串,这允许你传递一个lambda表达式来定义要使用的字段而不是字段的值,这意味着LabelFor可以使用定义的属性该字段 – Pharabus 2010-05-27 19:31:34

+0

好吧,我明白了。谢谢 – quakkels 2010-05-28 14:19:37

1

看看Lambda Expressions (C# Programming Guide)

所有lambda表达式使用拉姆达运算符=>,它读作“去”。 lambda运算符的左侧指定输入参数(如果有的话),右侧保存表达式或语句块。 lambda表达式x => x * x被读取为“x转到x次x”。