• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#のデリゲートを用いたイベントで戻り値を付けたい)

C#のデリゲートを用いたイベントで戻り値を付けたい

このQ&Aのポイント
  • C#のデリゲートを用いたイベントで戻り値を付ける方法について知りたいです。
  • 以下のコードでは戻り値の型が異なるためエラーになります。
  • イベントハンドラに戻り値がある場合、どのように記述するのが正しいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#212058
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;   (以下略)

yam2012
質問者

お礼

もともと戻り値は void 以外できなかったわけですね。 ありがとうございました。

関連するQ&A