Microsoft MVP성태의 닷넷 이야기
event handler 관련 문의 [링크 복사], [링크+제목 복사],
조회: 4845
글쓴 사람
베라 (wooricle at gmail.com)
홈페이지
첨부 파일
 

안녕하세요.

이벤트 사용할 때 이벤트핸들러를 다음과 같이 event 대신 static으로 사용하면
event를 사용했을 때와 어떤 차이가 있는지 궁금하여 문의드립니다.

[코드]
public delegate void AAA(Info info);
public static AAA onAAA;

public static void AAAEvent(Info info)
{
   if(onAAA != null) onAAA(info);
}

위의 코드는 제가 작성한 건 아니고 유지보수 때문에 받게된 코드인데
모든 이벤트(약 200개 정도)를 이렇게 처리해두었더라구요.
혹시 event로 바꿀 경우 이점이 있다면 모두 변경해볼까 합니다.

답변 부탁드리겠습니다.
감사합니다.








[최초 등록일: ]
[최종 수정일: 11/23/2021]


비밀번호

댓글 작성자
 



2021-11-23 05시22분
보여주신 것은, 사실 이벤트가 아니고 그냥 delegate를 사용한 것입니다. 이벤트로 바꾸려면 이벤트 형식에 맞게 (object sender, EventArgs e) 인자를 받도록 모두 수정해야 할 텐데... 이제와서는 아마 꽤나 귀찮은 작업이 될 듯합니다. ^^;

가장 큰 차이점이라면, 해당 onAAA 메서드를 저런 식으로 두었다면 외부에서도 호출이 가능하다는 점과, 누군가 '=' 대입 연산자를 사용하면 그 전의 구독자가 해지된다는 정도의 차이점이 있습니다.

(참고로, 혹시 제 책을 가지고 계시다면, "4.5.2.3 이벤트"에서 그에 대해 상세하게 설명하고 있습니다.)
정성태
2021-11-23 05시33분
[베라] 답변 감사드립니다.

주석을 이벤트로 적어두어서 그렇게 생각하고 있었는데, 그냥 delegate를 사용한 것이군요.
이벤트 내용 확인해보겠습니다.
[guest]

... 16  17  18  19  20  21  22  23  24  25  26  27  [28]  29  30  ...
NoWriterDateCnt.TitleFile(s)
51837/2/20197870.NET Compact Freamwork 컨트롤러 더블버퍼링 [1]
5182wpf ...7/2/20198059wpf 질문 드립니다. [1]파일 다운로드1
51817/1/20198512DataGridview Doublebuffer 에 대해서 질문드립니다. [2]
5180김대훈6/25/20198512배열과 반복문에서 질문드립니다 [2]
5177농상6/13/20199669멀티스레드 건의 [2]
5176이선호6/13/20199261안녕하세요. 닷넷 문제로 검색하다 알게되어 들어왔습니다. 현재 IIS 문제가 있어 질문드립니다. [1]
5175Chobo6/12/20199241WPF Ellipse 그리기! [3]
5174농상6/11/20198558ThreadPool 조인에 관해 [1]
5173전우치6/9/20198998공유 리소스에 대한 스레드 동기화 처리를 위해서 lock 이용 시 문의 [3]
5172김대훈6/7/20197809너무힘드네요 공부에 대한조언부탁드립니다 [2]
5171조남석6/4/20197505EX)11-2(treeview)에 대한 질문입니다. [3]
5170레리6/4/20198123Setup 프로젝트 레지스트리 설정 관련 질문입니다. [1]파일 다운로드1
5169농상6/3/20197899멀티스레드 파라미터 관련 [2]
5168익명유저5/30/20197185항상 정말 감사드립니다... [1]
5167WPF5/23/20198088질문드립니다. [1]
5165이대희5/22/20197236Visual Studio 설치 구성요소 문의 (C# 7.3 개정판 관련) [1]
5164레드5/21/20198754실행 과정과 실행파일 디버그 시 Icon변경 질문드립니다. [5]
5163이대희5/20/20197054시작하세요 C# 7.3 프로그래밍 책 도착했습니다. [1]
5162채홍윤5/14/20199868Mono Develop window 설치 [6]
5161정대영5/13/20197812VS 2013에서 C#6.0(.netFramwork 4.6.1) $ 디버깅 오류 [1]
5160초보개발자5/13/20198793wcf 관련 국내 서적 살만한 책이 있나요? [2]
5159sdh25/9/20198344VS 2010 버전에서 생성한 DLL을 VS 2017버전에서 실행 시 에러 [2]
5158sdh5/8/20197232Visual studio 2010 버전에서 생성한 Project를 Visual studio 2017버전에서 실행에러 [1]
5157김경훈5/8/201910220Task 만들때 넘겨주는 CancellationToken은 어디서 사용 되는 건가요? [4]
5156rysoo5/8/20198492yield return의 리턴 타입 질문 드립니다. [4]
5155세퉁5/7/201910398관리자 권한으로 실행 시 알림창(?) 없이 바로 실행 시킬 수 있는 방법이 있을까요?? [2]파일 다운로드1
... 16  17  18  19  20  21  22  23  24  25  26  27  [28]  29  30  ...