devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

eventキーワードを付けると、そのクラス内でのみデリゲート型の変数(EventHandler)を関数として呼び出すことができる。サブクラスからスーパークラスのEventHandlerを呼びだそうとするとエラーが表示される。

コンソールに以下の様なエラーが表示される。

Assets/EventSub.cs(9,21): error CS0079: The event EventSuper.EventMouseDown' can only appear on the left hand side of +=’ or -=' operator
Assets/EventSub.cs(9,21): error CS0070: The event
EventSuper.EventMouseDown’ can only appear on the left hand side of += or -= when used outside of the type EventSuper'
Assets/EventSub.cs(11,25): error CS0079: The event
EventSuper.EventMouseDown’ can only appear on the left hand side of +=' or -=’ operator
Assets/EventSub.cs(11,25): error CS0070: The event EventSuper.EventMouseDown' can only appear on the left hand side of += or -= when used outside of the type EventSuper’

継承する場合には、呼び出しをラップしたメソッドを用意して、それを呼び出すようにする。

Pocket

“Unity3D:スーパークラスのeventをサブクラスから呼び出す” への1件のコメント

  1. […] 参考) devlog [naru design] | Unity3D:スーパークラスのeventをサブクラスから呼び出す stackoverflow | Why can’t I invoke PropertyChanged event from an Extension Method? […]

コメントを残す

Trackback URL: