Advertisement
Caminhoneiro

EventHandler

Jun 21st, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.28 KB | None | 0 0
  1.  
  2.  
  3.  
  4.  
  5.         static void Main(string[] args)
  6.         {
  7.             //WorkPerformedHandler del1 = new WorkPerformedHandler(WorkPerformed1);
  8.             //WorkPerformedHandler del2 = new WorkPerformedHandler(WorkPerformed2);
  9.             //WorkPerformedHandler del3 = new WorkPerformedHandler(WorkPerformed3);
  10.  
  11.             //del1 += del2 + del3;
  12.  
  13.             //int finalHours = del1(10, WorkType.GenerateReports);
  14.             //Console.WriteLine(finalHours);
  15.  
  16.             var worker = new Worker();
  17.             worker.WorkPerformed += delegate(object sender, WorkPerformedEventArgs e)
  18.             {
  19.                 Console.WriteLine("Hours worked: " + e.Hours + " " + e.WorkType);
  20.             };
  21.             worker.WorkCompleted += delegate(object sender, EventArgs e)
  22.             {
  23.                 Console.WriteLine("Worker is done");
  24.             };
  25.             worker.DoWork(8, WorkType.GenerateReports);
  26.  
  27.             Console.Read();
  28. }
  29.  
  30.  
  31.     public enum WorkType
  32.     {
  33.         GoToMeetings,
  34.         Golf,
  35.         GenerateReports
  36.     }
  37.  
  38.  public class Worker
  39.     {
  40.         public event EventHandler<WorkPerformedEventArgs> WorkPerformed;
  41.         public event EventHandler WorkCompleted;
  42.  
  43.         public void DoWork(int hours, WorkType workType)
  44.         {
  45.             for (int i = 0; i < hours; i++)
  46.             {
  47.                 System.Threading.Thread.Sleep(1000);
  48.                 OnWorkPerformed(i + 1, workType);
  49.             }
  50.             OnWorkCompleted();
  51.         }
  52.  
  53.         protected virtual void OnWorkPerformed(int hours, WorkType workType)
  54.         {
  55.             //if (WorkPerformed != null)
  56.             //{
  57.             //    WorkPerformed(hours, workType);
  58.             //}
  59.  
  60.             var del = WorkPerformed as EventHandler<WorkPerformedEventArgs>;
  61.             if (del != null)
  62.             {
  63.                 del(this, new WorkPerformedEventArgs(hours, workType));
  64.             }
  65.         }
  66.  
  67.         protected virtual void OnWorkCompleted()
  68.         {
  69.             //if (WorkCompleted != null)
  70.             //{
  71.             //    WorkCompleted(this, EventArgs.Empty);
  72.             //}
  73.  
  74.             var del = WorkCompleted as EventHandler;
  75.             if (del != null)
  76.             {
  77.                 del(this, EventArgs.Empty);
  78.             }
  79.         }
  80.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement