간단한 질문과 함께 간단한 질문 일지 모르지만 나는 그것이 무엇인지 알지 못합니다. 컴파일러가 왜 이런 식으로 할 수 있습니까?익명 메소드 시그니처 및 이벤트 핸들러에 대한 간단한 질문
button1.Click += MyDelegateMethod
// snip
// compile error, signature does not match the signature of System.EventHandler.
private void MyDelegateMethod()
{
}
은 내가해야한다는 것을 기대 :
button1.Click += delegate { someFlag = true; };
는
내가 그러나이 작업을 수행 할 수 없습니다 (난 단지 .NET 2.0, 그래서 아무 lamdas하지만 동일한 개념을 사용할 수 있습니다) 내 익명 메소드를 다음과 같이 선언하십시오 :
delegate(object sender, EventArgs e) { someFlag = true; };
익명 메소드는 괜찮지 만 필자는 쓰지 않을 때 이해가되지 않습니다. 완전한 메소드 그 자체. 누군가?
"컴파일러 매직"은 내가 생각한 것입니다. –