Microsoft Practice Test에서이 질문을 만났습니다. 혼란스러워했습니다. 여기에 질문 :C#에서 이벤트 발생
그들이 제공하는 "올바른"대답이다.이벤트를 발생시킬 수있는 적절한 방법은 다음 C# 코드 샘플 의이다가, 는 알람 이벤트는 AlarmEventArgs 클래스와 AlarmEventHandler 위양이 되어 선언 한 가정?
AlarmEventArgs e = new AlarmEventArgs(1, 2); AlarmEventHandler handler = Alarm; if (handler != null) { handler(this, e); }
그러나, 또한 올바른 것 같다 다른 응답이 : 여기
AlarmEventArgs e = new AlarmEventArgs(1, 2);
if (Alarm!= null)
{
Alarm (this, e);
}
저는 개인적으로 항상 두 번째 방법을 사용합니다. 그것은 잘 작동합니다. 누군가 제 2의 대신에 첫 번째 방법을 사용해야하는 이유를 말해 줄 수 있습니까?
가능한 복제본 [이벤트 발송 전에 null 확인 중 ... 스레드 안전?] (http://stackoverflow.com/questions/282653/checking-for-null-before-event-dispatching-thread-safe) – doppelgreener