- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#のデリゲートを用いたイベントで戻り値を付けたい)
C#のデリゲートを用いたイベントで戻り値を付けたい
このQ&Aのポイント
- C#のデリゲートを用いたイベントで戻り値を付ける方法について知りたいです。
- 以下のコードでは戻り値の型が異なるためエラーになります。
- イベントハンドラに戻り値がある場合、どのように記述するのが正しいのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#212058
回答No.1
イベントハンドラを使う場合は、戻り値は void と決められているので Return で返すことはできません。引数で返すようにする必要があります。例えば、 delegate string MyDelegate(ref string msg); とするとか。 もっとも、質問のサンプルのパターンなら、最初からイベントハンドラなど使わずに、直接メソッドの参照を渡すようにしたほうが賢い選択では。 MyClass mc = new MyClass(); MyEventClass mec = new MyEventClass(); mec.eventname = mc.myget; msg = mec.Oneventname(); class MyEventClass { public MyDelegate eventname; (以下略)
お礼
もともと戻り値は void 以外できなかったわけですね。 ありがとうございました。