21

Microsoft Practice Test でこの質問に出会い、混乱しました。質問は次のとおりです。

Alarm イベント、AlarmEventArgs クラス、および AlarmEventHandler デリゲートが宣言されていると仮定して、イベントを発生させる適切な方法は次の C# コード サンプルのうちどれですか?

彼らが提供した「正しい」答えは次のとおりです。

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 番目の方法を使用します。それはうまく動作します。2番目の方法ではなく最初の方法を使用する理由を教えてください。

4

1 に答える 1