2011-01-13 2 views
6

가능한 중복의 차이 무엇 :
Should I Create a New Delegate Instance?C 번호 : SomeEvent + = 방법 및 SomeEvent + = 새 대표 (방법)

안녕하세요, 나는 대답을 찾고 시도했습니다 그러나 실제로 사이트에서 검색 할 용어를 알지 못하며 사이트에서 제안한 질문 중 어느 것도 관련이 없습니다. 나는 이것이 전에 대답되었을 것임에 틀림 없다라고 확신한다.

기본적으로, 누군가가 C#에서이 두 선 사이의 차이점은 무엇을 말해 줄 수 : 예를 들어

SomeEvent += SomeMethod 
SomeEvent += new SomeDelegate(SomeMethod) 

:

DataContextChanged += App_DataContextChanged; 
DataContextChanged += new DependencyPropertyChangedEventHandler(App_DataContextChanged); 

그들은 모두 같은 일을 할 것으로 보인다.

답변

9

이들은 동일합니다. 두 번째 변형은 첫 번째 코드 인 Method group conversion의 줄임말입니다.

간단히 말해 컴파일러는 이벤트 자체의 대리자 형식을 사용하여 대리자 형식을 추론합니다. 이것은 내가 실수하지 않는다면 C# 2.0에서 소개되었습니다.

5

그들은 같은 일을합니다. 변형

SomeEvent += new SomeDelegate(SomeMethod) 

은 C# 1.0, 1.1로 작성하는 유일한 방법입니다. 2.0 이후로 단순화로서 다른 대안을 쓸 수 있습니다.

3

둘 다 같습니다.

SomeEvent += new SomeDelegate(SomeMethod) 

는 SomeDelegate 생성자는 객체의 인스턴스를 생성하기 위해 호출됩니다 즉 후드 아래에 무슨 일 언급하고있다.

관련 문제