2010-04-28 1 views
13

Silverlight 자습서 비디오를보고 있었는데 익숙하지 않은 식 이 예제 코드에서 발견되었습니다.'=>'은 무엇입니까? (C# 문법 질문)

무엇이 =>? 이름이 무엇입니까? 나에게 링크를 제공해 주시겠습니까? 특수 문자이므로 검색 할 수 없습니다.

코드 :

 var ctx = new EventManagerDomainContext(); 
     ctx.Events.Add(newEvent); 
     ctx.SubmitChanges((op) => 
     { 
      if (!op.HasError) 
      { 
       NavigateToEditEvent(newEvent.EventID); 
      } 
     }, null); 
+0

람다에 단 하나의 매개 변수가있는 경우 그 여분의 괄호를 사용하면 –

+2

괄호를 생략 할 수 있습니다. '(op) =>'는'op =>' –

+0

으로 단축 될 수 있습니다. C# ** 람다 표현식 **입니다. [여기]에 대한 모든 내용을 읽을 수 있습니다 (http://msdn.microsoft.com/en-us/library/bb397687.aspx). –

답변

11

Lambda operator는 :

람다 표현식은 delegates 또는 expression tree 유형을 생성하는 데 사용할 수있는 anonymous function입니다. 람다 식을 사용하여 인수로 전달되거나 함수 호출의 값으로 반환 될 수있는 로컬 함수를 작성할 수 있습니다. ...

Huzzah!

+0

람다 (lambda)는 항상 람다 (lambda) 표현으로 배운 첫 번째 언어 인 립 (lisp)을 생각하게 만듭니다. – Patrick

+0

@Patrick Lisp는 람다 계산법 http://en.wikipedia.org/wiki/Lambda_calculus를 기반으로하므로이 연산자의 이름은 – AakashM

14

이것은 lambda expression입니다.

C# 2의 익명 메소드에 익숙하다면 람다 식은 거의 유사하지만 더 간결합니다. 그래서 당신이있어 코드는 익명의 방법과 같이 작성할 수 있습니다 : 같은 촬영 된 변수의 동작 익명 방법

var ctx = new EventManagerDomainContext(); 
ctx.Events.Add(newEvent); 
ctx.SubmitChanges(delegate(Operation op) 
{ 
    if (!op.HasError) 
    { 
     NavigateToEditEvent(newEvent.EventID); 
    } 
}, null); 

측면은 람다 표현식 같은 방식으로 작동합니다. 람다 식과 익명 메서드는 모두 익명 함수이라고합니다.

그러나, 몇 가지 차이점이 있습니다

  • 람다 표현식은 expression trees뿐만 아니라 대표로 변환 할 수 있습니다.
  • 람다 표현식은 그들을 더 간결하게 바로 가기의 번호를 가지고 :

    • 컴파일러는 매개 변수 유형을 추론 할 수 있다면 몸이 하나의 문이 경우, 당신은 그들에게
    • 를 지정할 필요가 없습니다 당신이 유추 유형의 단일 매개 변수가있는 경우
    • , 당신은 괄호를 놓칠 수는 괄호에 넣어 필요가 없습니다 당신은 return 문의 "반환"부분을 생략 할 수 있습니다

    IEnumerable<string> names = people.Select(person => person.Name); 
    
  • 람다 익명의 방법, 예를 들어,의 형태로 "나는 얼마나 많은 매개 변수를 걱정하지 않는다"를 지원하지 않는 연산 식 : 함께 이러한 퍼팅, 당신은 같은 것들을 얻을 그들은 특수 문자이기 때문에

    EventHandler x = delegate { Console.WriteLine("I was called"); }; 
    
1

나는 그것을를 검색 할 수 있습니다.

때때로 구식 방식이 가장 좋습니다. 이것은 나를 위해 일한 :

  • 시작 비주얼 스튜디오 2008 또는 도움말 문서 탐색기가 마련되면 나중에
  • 히트 F1
  • ,
  • =>를 입력 Index 탭이 왼쪽 창에서 선택되어 있는지 확인 찾는 대상 필드
  • 목록의 첫 번째 항목은 이제 필요한 도움말 항목입니다.
+2

에서 얻을 수 있습니다. 오! :-)하지만 실제로, 때로는 사람들이 F1 키를 대신 매크로를 열어야한다고 생각합니다. – Patrick