のコードは以下のようになります。イベントに複数のサブスクライバがある場合、各サブスクライバの戻り値を取得するにはどうすればよいですか?
時計:
public class Clock
{
public event Func<DateTime, bool> SecondChange;
public void Run()
{
for (var i = 0; i < 20; i++)
{
Thread.Sleep(1000);
if (SecondChange != null)
{
//how do I get return value for each subscriber?
Console.WriteLine(SecondChange(DateTime.Now));
}
}
}
}
DisplayClock:
public class DisplayClock
{
public static bool TimeHasChanged(DateTime now)
{
Console.WriteLine(now.ToShortTimeString() + " Display");
return true;
}
}
LogClock:
:public class LogClock
{
public static bool WriteLogEntry(DateTime now)
{
Console.WriteLine(now.ToShortTimeString() + " Log");
return false;
}
}
は、コードを実行するには
他の質問は以下のとおりです。
- は、それが値を返すために、各加入者のための良い練習ですか?
- 代理人を手動で宣言するのではなく、単にイベントの戻り値の型としてAction/Funcを宣言するのがよいでしょうか?
ありがとうございました。 – Jeff
よろしくお願いします。 – Jeff