在现实生活场景中模拟事件和代表

时间:2013-06-22 17:55:43

标签: c# delegates

我想通过现实生活中的例子向学生介绍活动和代表。我想将其与现实生活事件联系起来。

我想将以下现实生活场景转换为事件和代表。

我有一个心跳监测器。每当我心率不正常时,我的医生会收到心率异常的通知。

我想在C#4.0中编写代码,将其映射到事件和委托中。

非常感谢帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码:

class MyHeartBeatMonitor
{
    public event EventHandler<AbnormalHeartRateSimulation> Abnormalheartbeats;

    public void NotifyFamilyDoctor()
    {
        EventHandler<AbnormalHeartRateSimulation> handler 
                                                   = Abnormalheartbeats;
        if (handler != null)
        {
            AbnormalHeartRateSimulation simulatedRates =
                                        new AbnormalHeartRateSimulation();
            simulatedRates.heartRate = 140;
            handler(this, simulatedRates);
        }


  }
}

public class AbnormalHeartRateSimulation : EventArgs
    {
        public int heartRate { get; set; }
    }


class FamilyDoctor
  {
   public void EventHandler(
                          object sender,AbnormalHeartRateSimulation args)
   {
      Console.WriteLine("Your Patient's HearRate is " + args.heartRate);
    }


    }

class Program
    {
     static void Main(string[] args)
     {
       MyHeartBeatMonitor monitor = new MyHeartBeatMonitor();
       FamilyDoctor doctor = new FamilyDoctor();
       monitor.Abnormalheartbeats += doctor.EventHandler;
       monitor.NotifyFamilyDoctor();
       Console.ReadKey(true);
      }
}

继续并根据您的要求进行自定义。一切顺利!