사용자 정의 이벤트에서 제공하는 이벤트 인수에 대해 선호되는 방법은 무엇입니까?

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

  •  01-07-2019
  •  | 
  •  

문제

.NET의 사용자 지정 이벤트와 관련하여 이벤트 인수 전달에 선호되는 디자인 패턴은 무엇입니까?따로 가지고 계시다면 EventArgs 발생할 수 있는 각 이벤트에 대해 파생 클래스가 있습니까? 아니면 동일한 클래스의 이벤트에 의해 모두 발생하는 경우 이벤트에 대해 단일 클래스를 갖는 것이 허용됩니까?

도움이 되었습니까?

해결책

각 이벤트에 대해 별도의 EventArgs 파생 클래스가 필요하지 않습니다.바퀴를 다시 만드는 대신 기존 EventArgs 파생 클래스를 사용하는 것이 완벽하게 허용되며 심지어 바람직합니다.

이는 기존 프레임워크 클래스일 수 있습니다(예:System.Component.CancelEventArgs 원하는 경우 이벤트 처리기에 작업을 취소할 수 있는 기능을 제공하는 것뿐입니다.

또는 이벤트 처리기에 전달할 애플리케이션 관련 데이터가 있는 경우 고유한 EventArgs 파생 클래스를 만들 수 있습니다.동일한 클래스 또는 다른 클래스의 두 이벤트가 동일한 데이터를 보내는 경우 동일한 EventArgs 파생 클래스를 사용해서는 안 될 이유가 없습니다.

다른 팁

저는 일반적으로 각 이벤트에 대한 공통 데이터가 있는 기본 EventArgs 클래스를 만듭니다.특정 이벤트에 더 많은 데이터가 연결되어 있으면 해당 이벤트에 대한 하위 클래스를 만듭니다.그렇지 않으면 그냥 기본 클래스를 사용합니다.

이벤트가 무엇인지에 따라 다르지만 대부분의 경우 이벤트를 소비하려는 사람을 위해 EventArgs에서 파생된 단일 사용자 지정 클래스를 만듭니다.

OAB와 마찬가지로 사용하는 구성 요소나 응용 프로그램에 특정한 데이터를 추가하여 EventArgs를 확장하는 사용자 지정 '기본' 인수 클래스를 만듭니다.예:회계 내보내기 응용 프로그램에서 내 기본 ImportEventArgs는 AccountNo 속성을 추가합니다.

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