반응형
사용자 지정 EventHandler 대 EventHandler
최근에이 코드 사이에 중요한 차이점이 있는지 궁금합니다.
public event EventHandler<MyEventArgs> SomeEvent;
그리고 이것:
public delegate void MyEventHandler(object sender, MyEventArgs e);
public event MyEventHandler SomeEvent;
둘 다 똑같은 일을하고 나는 어떤 차이도 말할 수 없었습니다. .NET Framework의 대부분의 클래스는 이벤트에 대해 사용자 지정 이벤트 처리기 대리자를 사용한다는 것을 알았습니다. 이에 대한 구체적인 이유가 있습니까?
네가 옳아; 그들은 같은 일을합니다. 따라서 더 명확하고 타이핑이 덜 필요하기 때문에 전자를 후자보다 선호해야합니다.
많은 .NET Framework 클래스에 자체 사용자 지정 이벤트 처리기 대리자가있는 이유는 버전 2.0에서 제네릭 (축약 형 구문 허용)이 도입되기 전에 작성 되었기 때문입니다. 예를 들어, 거의 모든 WinForms 라이브러리는 제네릭 이전에 작성되었으며 당시에는 후자 형식이 작업을 수행 하는 유일한 방법이었습니다.
두 번째 방법은 더 많은 유연성과 형식 안전성을 제공합니다. 상응하는 서명을 가진 메소드가 적습니다 => 실수 할 곳이 적습니다. 커스텀 델리게이트를 사용하면 필요한 매개 변수를 정확하게 지정할 수 있습니다 (또는 아무 것도 지정하지 않음). sender + args화물 컬트가 없습니다.
참고 URL : https://stackoverflow.com/questions/8668083/custom-eventhandler-vs-eventhandlereventargs
반응형
'programing' 카테고리의 다른 글
XSLT / XPath의 현재 노드 대 컨텍스트 노드? (0) | 2020.11.25 |
---|---|
문자열 연결 대신 os.path.join을 사용하는 이유는 무엇입니까? (0) | 2020.11.25 |
VFAT와 FAT32 파일 시스템의 차이점은 무엇입니까? (0) | 2020.11.25 |
PHP에서 @는 무엇을 의미합니까? (0) | 2020.11.25 |
IntelliJ IDEA에서 작업 저장 (0) | 2020.11.25 |