Tôi đã xem qua câu hỏi này trong Bài kiểm tra thực hành của Microsoft và tôi đã nhầm lẫn. Đây là câu hỏi:Tăng sự kiện trong C#
nào của mã mẫu sau đây C# là cách thích hợp để nâng cao một sự kiện, giả định rằng sự kiện báo động, lớp AlarmEventArgs, và AlarmEventHandler đại biểu đã tuyên bố?
Dưới đây là câu trả lời "đúng" họ đã cung cấp:
AlarmEventArgs e = new AlarmEventArgs(1, 2);
AlarmEventHandler handler = Alarm;
if (handler != null)
{
handler(this, e);
}
Tuy nhiên, đó cũng là một câu trả lời mà có vẻ đúng.
AlarmEventArgs e = new AlarmEventArgs(1, 2);
if (Alarm!= null)
{
Alarm (this, e);
}
Cá nhân tôi, luôn sử dụng phương pháp thứ hai. Nó hoạt động tốt. Ai đó có thể vui lòng cho tôi biết lý do tại sao tôi nên sử dụng phương pháp đầu tiên thay vì thứ hai?
có thể trùng lặp của [Kiểm tra null trước khi gửi sự kiện ... chủ đề an toàn?] (Http://stackoverflow.com/questions/282653/checking-for-null-before-event-dispatching-thread-safe) – doppelgreener