2013-04-29 4 views
6

다음 두 가지 변형이 모두 컴파일되어 표면에 동일한 방식으로 작동하는 것처럼 보입니다. 구문 설탕을 제외하고는 다른 차이점이 있습니까?이벤트 처리기를 대리인으로 꾸며야합니까?

someObject.SomeEvent += new SomeEventHandler(someObject_SomeEvent); 
someObject.SomeEvent += someObject_SomeEvent; 

답변

10

두 개는 완전히 동일합니다. 두 번째 (더 짧은) 형식을 사용하면 컴파일러는 단지 대리자 형식을 사용합니다.

대리자 형식이 코드 내에 존재하기를 원하지 않는다면 (위임 용이성 등을 위해) 대리자를 명시 적으로 구성하는 구문을 사용할 이유가 없습니다.

4

vs2003 컴파일러에서 델리게이트를 만드는 새롭고 짧은 버전이 소개되었습니다. 그것은 긴 버전에 대한 구문 론적 설탕 일뿐입니다.

관련 문제