Bu soruya bir Microsoft Practice Testinde rastladım ve kafam karıştı. İşte soru:C# içinde bir olay yükseltin #
onlar sağlanan "Doğru" cevabı.bir olayı yükseltmek uygun yolu aşağıdaki C# kod örnekleri ait olduğunu Alarm olayı, AlarmEventArgs sınıf ve AlarmEventHandler temsilci olmuştur ilan ettiler varsayarak?
AlarmEventArgs e = new AlarmEventArgs(1, 2); AlarmEventHandler handler = Alarm; if (handler != null) { handler(this, e); }
Ancak aynı zamanda doğru görünüyor başka cevabı vardır: İşte
AlarmEventArgs e = new AlarmEventArgs(1, 2);
if (Alarm!= null)
{
Alarm (this, e);
}
Şahsen, her zaman ikinci yöntemi kullanın. Sadece iyi çalışıyor. Birisi bana neden ikinci yöntem yerine ilk yöntemi kullanmam gerektiğini söyleyebilir mi?
olası bir kopyası [olay gönderilmeden önce null denetleniyor ... iş parçacığı güvenli mi?] (Http://stackoverflow.com/questions/282653/checking-for-null-before-event-dispatching-thread-safe) – doppelgreener