2009-09-02 5 views
27
delegate void DelegateTest(); 

DelegateTest delTest; 

뭐죠 delTest.Invoke()delTest() 호출 차이? 둘 다 현재 스레드에서 대리인을 실행합니다.간의 차()

답변

33

delTest() 양식은 컴파일러 도우미이며 그 아래에는 실제로 Invoke()이 호출됩니다.

+1

richard, 회원님의 프로필에 "rotorua"라고 잘못 표기 했으므로 거의 투표를하지 않았습니다.) –

+0

@Rob : Oops, typo가 수정되었습니다. – Richard

+1

@ 리차드 : 내부적으로 Invoke()는 무엇을합니까? 이 Invoke 메서드는 정확히 어디에 위치합니다. 나는 Delegate의 메타 데이터 파일과 MultiCastDelegate에서 찾지 못했습니다. – Novice

3

맞습니다. 둘 다 똑같은 결과를 가지고 있습니다.

물론 delTest을 올바르게 초기화 했으므로

+0

'delTest'가'null' 인 경우, 두 구문 모두 다시 같은 결과를 낳습니다 (이 상황에서 호출이 시도 된 행에서 throw 된'NullReferenceException'). –

관련 문제