2010-05-27 185 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」。