2009-07-04 3 views
-1

this을 기반으로하면 매개 변수를 더 많이 무시한다고 어떻게 생각하십니까?언어 디자이너 인 경우 람다에 대해 매개 변수를 무시할 때 어떻게 사용합니까?

var m = menuStrip.Items.Add ("Hello", null, delegate {MessageBox.Show ("Como Esta Mundo");});

나는의 라인을 따라 생각하고 있어요 :

var에 m = menuStrip.Items.Add ("안녕하세요", NULL, ==> MessageBox.Show ("코모 사령관 문도"));

var m = menuStrip.Items.Add ("Hello", null,? => MessageBox.Show ("Como Esta Mundo"));

혹은이 :

VAR m = menuStrip.Items.Add (? "안녕하세요"NULL, => MessageBox.Show ("지냈어 문도"));

복용량은 어떻게 되나요?

< 언어 진화 관찰 > 그들은 심지어 ?? 연산자는 실제로 아름다운 언어. 이제 그들은 그것의 반대 (즉 Null 연산자)를 만들고 싶다면, 이것은 무언가를 동일하거나 0이 NULL과 동일하게 취급하고 싶다면 매우 유용 할 것입니다. </언어 진화 관찰 >

답변

2

음, 익명 메소드와 마찬가지로, 람다 표현식을 변환하려고하는 컴파일 타임 타입을 알아야합니다 (C#이 더 큰 변경 인 자유 함수를 지원하기 시작하지 않는 한). ?

내가 아주 좋아 =>하지만 : 특별히 대리인으로 EventHandler를 선언

Action<int> foo = ?=> Console.WriteLine("Okay"); 
EventHandler handler = ?=> Console.WriteLine("Okay too"); 

이제 ToolStripCollection.Add로, 당신의 예는 괜찮을 것이다.

control.Invoke(?=> Console.WriteLine("No no no")); 

여기 컴파일러에 람다 식을 변환하려고하는 방식을 모르는 것, 그래서 캐스트를 필요로 - 익명 메소드가 오늘날처럼 :하지만 이것은하지 않을 것이다.