Delegate.Invoke와 Delegate()의 차이점


Delegate.Invoke와 Delegate()의 차이점

delegate void DelegateTest(); DelegateTest delTest; delTest.Invoke() 및 delTest() ) 호출의 차이점은 무엇입니까? 둘 다 현재 스레드에서 대리자를 실행합니다. 맞습니까? 맞습니다. 둘 다 똑같은 결과를 얻습니다. 물론 delTest 를 올바르게 초기화했다는 점을 감안할 때. delTest() 형식은 컴파일러 도우미이며 그 아래에는 실제로 Invoke() 에 대한 호출이 있습니다. Richard의 대답은 정확하지만 C# 6.0부터 Invoke() 를 직접 사용하는 것이 null 조건부 연산자 의 추가로 인해 유리할 수 있는 한 가지 상황이 있습니다. MS 문서에 따라: null 조건부 멤버 액세스의 또 다른 용도는 훨씬 적은 코드로 스레드로부터 안전한 방식으로 대리자를 호출하는 것입니다. 이전 방식에는 다음과 같은 코드가 필요합니다. var handler = this.PropertyChanged; if (handler !=...


#c #delegates

원문링크 : Delegate.Invoke와 Delegate()의 차이점