2009-11-25 5 views
1

다음을 람다 식으로 변환하는 방법은 무엇입니까?C# 람다 식 변환

// The underscore is simply a placeholder for the "state" 
// parameter that the WaitCallback delegate expects - you could 
// use any character but you must specify one as lamba expressions cannot 
// omit parameters like anonymous functions can. 
ThreadPool.QueueUserWorkItem((_) => 
    { 
     Console.WriteLine("Current Thread Id is {0}:", 
     Thread.CurrentThread.ManagedThreadId); 
     Console.WriteLine("I will be used as Callback"); 
    }); 

을하지만 람다 표현식은 소스 코드의 외부 아무런 의미가 없다는 것을 기억

ThreadPool.QueueUserWorkItem(delegate 
    { 
     Console.WriteLine("Current Thread Id is {0}:", 
     Thread.CurrentThread.ManagedThreadId); 
     Console.WriteLine("I will be used as Callback"); 
     } 
    ); 

답변

4

당신은 확실히 람다 표현으로이를 작성할 수 있습니다. C# 컴파일러는 람다 식을 바로 지금 코드로 변환합니다.

람다 식은 익명의 함수를 표현하는 데 사용할 수있는 단순한 문법적 설탕입니다. 컴파일러는 이것을 익명의 함수 또는 표현식 트리로 변환합니다.

+0

Andrew, "_"(밑줄)의 용도는 무엇입니까? – user215675

+0

오! 코드에서 주석을 얻었습니다. – user215675

+1

죄송합니다. 댓글에 있습니다. 기본적으로 자리 표시자가되기 위해 * something *을 던져야합니다. –