Mã này trông giống như dưới đây:khi một sự kiện có nhiều người đăng ký, làm cách nào để tôi nhận được giá trị trả lại cho từng người đăng ký?
Đồng hồ:
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;
}
}
Để chạy mã:
var theClock = new Clock();
theClock.SecondChange += DisplayClock.TimeHasChanged;
theClock.SecondChange += LogClock.WriteLogEntry;
theClock.Run();
Các câu hỏi khác là:
- Có thực hành tốt cho mỗi thuê bao để trả về một giá trị?
- Thực tiễn tốt là chỉ cần khai báo Hành động/Func làm loại trả về sự kiện thay vì khai báo thủ công một đại biểu?
Thank you very much. – Jeff
Ok, tôi thấy quan điểm của bạn. – Jeff