自分のイベントを定義するときは常に、次のようなパターンを使用します(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); }
コメント
、引数としてプロパティ名を渡しますか?それともこれは悪い例ですか?
PropertyChangedEventArgs
と