2011-08-16 4 views
3

저는 C#과 MVC3을 배우려고합니다. 내가 이런 짓까지하지만, 그것은 작동하지 않을 것입니다, Html.Action 링크로 WebGrid 열을하고 싶었 :"(item) =>"은 무엇을합니까?

grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { id = item.Id })) 

그래서이가 왜 해결되는 알아? (항목)은 캐스트처럼 보이지만 =>는 무엇입니까? 다른 질문을 읽으면서 나는 어떤 이유로이 일을하는 것이 분명히 나쁘다는 것을 알았습니다 - 왜?

+2

조금 더 명확 그것은 모든 람다를 사용하는 것이 나쁘지는있을 수 있습니다 약간 확장 된 형태입니다. – driis

+0

이렇게하는 것은 나쁘지 않습니다. – recursive

+0

감사합니다. [this] (http://stackoverflow.com/questions/6167903/using-data-in-a-html-actionlink-inside-a-webgrid-column-not-possible) 질문에 대한 답은 내가 걱정했기 때문입니다. – BenGC

답변

8

이것은 C#에서 람다 식/익명 함수로 알려져 있습니다. () 부분은 인수 목록이고 => 오른쪽 부분은 람다의 본문/표현식임을 나타냅니다.

여기

Func<ItemType, string> linkFunction = (item) => 
{ 
    return Html.ActionLink("Edit", "Edit", new { id = item.Id }); 
}; 
+0

나는 "/ 익명 함수"를 삭제할 수 있다고 생각합니다. 그냥 람다 표현이 더 정확하다고 생각합니다. –

+0

@ justin.m.chase 익명 함수는 람다 식과 익명 메서드를 모두 다루기 때문에 더욱 포괄적입니다. – JaredPar

7

이것은 lambda expression입니다. 그리고 아니, 람다를 사용하는 것은 나쁘지 않습니다. (매우) 좋은 것입니다.

+0

@Andrew, 왜 열정적 인 편집을 했습니까? – RichK

+0

@ 리치 : 답변을 너무 많이 외면했지만 "MSDN은 당신의 친구입니다"라는 말을 제외 시켰습니다. –

+0

아, 원래 편집으로 Claus의 추가 문장을 밟은 것처럼 보입니다. 죄송합니다 그것에 대해 :) –

관련 문제