自分のイベントを定義するときは常に、次のようなパターンを使用します(MSDNが推奨する方法はと思います)。 ):

public class MyEventClass { private bool _value; // Backing variable public bool Value { get { return _value; } set { if (value != _value) // Only raise event if value is changed/different { _value = value; OnValueChanged(EventArgs.Empty); } } } public event EventHandler ValueChanged; // Anything can subscribe to the event protected void OnValueChanged(EventArgs e) // Only this and children can invoke event { if (ValueChanged != null) ValueChanged(this, e); } } 

したがって、クライアントコードはイベントにサブスクライブするだけで、自動的に機能します。

ただし、特に、EventHandlerを使用してイベントを発生させるクラスでは、ベースのEventArgsにデータがなく、iv id = “b1ad119271″のみであるため、EventArgs eパラメーターを渡すのは面倒です。 >

これに変更するのは偽物と見なされますか?

protected void OnValueChanged() { if (ValueChanged != null) ValueChanged(this, EventArgs.Empty); } 

コメント

  • そこにいることで何が痛いですか?後でイベント引数を渡す必要がある場合は、追加し直す必要がありますか?おそらく…
  • クラスを書いている間、自分の労力を節約するための便利さとしてのみ考えました。ただし、'後で変更できる可能性があるという点で完全に正しいです(おそらく' tに勝ちますが、それでも…)、そしてそれは壊滅的な変化になるので、私は最初からそれを正しく行うほうがよいでしょう。ありがとうございます!
  • この特定のケースでは、' PropertyChangedEventArgs

、引数としてプロパティ名を渡しますか?それともこれは悪い例ですか?

  • 私のコードは悪い例かもしれませんが、デフォルトのEventArgsと-Changedの命名法を使用するいくつかの.NETクラスからデザインと命名規則を引き出していました。
  • 回答

    間違っていますか?いいえ。それは人々にあなたのコードについて不平を言う原因になりますか?いいえ。

    忙しい開発者がパラメータとは何か、そしてそれらが問題の解決に役立つかどうかを調べようとしている間、数分間それを回避しますか?可能性があります。

    クラスが使いやすくなりますか…?

    標準とパターンは、簡単に認識および使用(または無視)できるため便利です。慣例からの逸脱は、できるという理由だけでなく、目的のために行う必要があります。これは、ブラケットスタイル、パラメータ名、または引数リストのいずれであっても適用されます。コンパイルするだけでなく、理由があってください。

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です