위임 핸들러가 있는 이벤트와 없는 이벤트의 차이점은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/119160

  •  02-07-2019
  •  | 
  •  

문제

이것의 차이점은 무엇입니까?

this.btnOk.Click += new System.EventHandler(this.btnOK_Click);

이?

this.btnOk.Click += this.btnOK_Click;

둘 다 작동합니다.전자는 코드 조각을 사용할 때 Visual Studio의 기본값입니다.하지만 그것은 단지 추가 장황한 말만 광고하는 것 같습니다. 아니면 제가 뭔가를 놓치고 있는 걸까요?

도움이 되었습니까?

해결책

차이 없음.대리자 인스턴스화를 생략하는 것은 단지 구문 사탕일 뿐입니다.C# 컴파일러는 내부적으로 대리자 인스턴스화를 생성합니다.

다른 팁

C# 3.0 이상에서는 차이가 없습니다.C# 3.0 이전에는 컴파일러 제한으로 인해 EventHandler가 필요했지만 C# 3.0이 등장하면서 매우 명시적이지 않은 한 두 번째 형식이 선호됩니다.

나는 C# 3.0부터 대리자 처리기를 암시적으로 추가했다고 생각합니다.그러나 특히 가능한 대리자 유형이 여러 개 있는 경우에는 더욱 명확하게 하는 것이 도움이 될 수 있습니다.

"+= Delegate_Name"은 구문 설탕입니다.컴파일러는 새로운 래퍼를 생성합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top