継承先から親クラスのイベントの発行
継承先から親クラスのイベントを発行しようとした際に
`****’ can only appear on the left hand side of += or -= when used outside of the type ` ****’
こんなエラーが出た。
どうも
event EventHandler MyEvent;
と定義をした際には実際には
private EventHandler _myEvent; public EventHandler MyEvent { add(EventHandler handler) { this._myEvent += handler; } remove(EventHandler handler) { this._myEvent -= handler; } }
こんな展開がされているらしい。
ここで、_myEventはprivateなので継承先からは処理が呼べないらしい。
なので、継承元に
protected CallMyEvent() { this.MyEvent(this, EventArgs.Empty); }
などを準備して、継承先から読んであげる必要があるようです。
参考)
devlog [naru design] | Unity3D:スーパークラスのeventをサブクラスから呼び出す
stackoverflow | Why can’t I invoke PropertyChanged event from an Extension Method?
コメントを残す