Advertisement
OOP_exam

lab4_2

Jan 16th, 2017
523
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.00 KB | None | 0 0
  1. using System;
  2.  
  3. namespace lab4_2
  4. {
  5.     //  Создать приложение, в котором генератор события “снабжает”
  6.     //  событие следующей информацией: название поезда, станция
  7.     //  назначения, станция отправления и время в пути.Приемник
  8.     //  события распечатывает эту информацию.
  9.  
  10.     class TrainEventArgs : EventArgs
  11.     {
  12.         string trainName;
  13.         public string TrainName
  14.         {
  15.             get
  16.             {
  17.                 return trainName;
  18.             }
  19.         }
  20.         string firstStation;
  21.         public string FirstStation
  22.         {
  23.             get
  24.             {
  25.                 return firstStation;
  26.             }
  27.         }
  28.  
  29.         string lastStation;
  30.         public string LastStation
  31.         {
  32.             get
  33.             {
  34.                 return lastStation;
  35.             }
  36.         }
  37.  
  38.         int wayTime;
  39.         public int WayTime
  40.         {
  41.             get
  42.             {
  43.                 return wayTime;
  44.             }
  45.         }
  46.  
  47.         public TrainEventArgs(string name, string fStation, string lStation, int time)
  48.         {
  49.             this.trainName = name;
  50.             this.firstStation = fStation;
  51.             this.lastStation = lStation;
  52.             this.wayTime = time;
  53.         }
  54.     }
  55.     class GenEvent  // Генератор событий - издатель
  56.     {
  57.         public delegate void TrainEventHandler(object sender, TrainEventArgs e);
  58.  
  59.         public event TrainEventHandler OnTrainHandler;
  60.  
  61.         public void NewEvent(string name, string fStation, string lStation, int time)
  62.         {
  63.             TrainEventArgs e = new TrainEventArgs(name, fStation, lStation, time);
  64.  
  65.             if (OnTrainHandler != null)
  66.                 OnTrainHandler(this, e);
  67.  
  68.         }
  69.  
  70.         //Подписчик
  71.         class RecEvent
  72.         {
  73.             //Обработчик события  
  74.             void OnRecChange(object source, TrainEventArgs e)
  75.             {
  76.                 Console.WriteLine("\nНазвание поезда: {0} \nСтанция отправления: {1} \nСтанция назначения: {2}  \nВремя в пути, ч: {3}", e.TrainName, e.FirstStation, e.LastStation, e.WayTime);
  77.             }
  78.  
  79.             // в конструкторе класса осуществляется подписка
  80.             public RecEvent(GenEvent gnEvent)
  81.             {
  82.                 gnEvent.OnTrainHandler += new GenEvent.TrainEventHandler(OnRecChange);
  83.             }
  84.         }
  85.         class Program
  86.         {
  87.             static void Main(string[] args)
  88.             {
  89.  
  90.                 GenEvent gnEvent = new GenEvent();
  91.                 RecEvent inventoryWatch = new RecEvent(gnEvent);
  92.  
  93.                 gnEvent.NewEvent("STAR", "Kazan", "Moscow", 12);
  94.  
  95.                 Console.ReadKey(true);
  96.  
  97.             }
  98.  
  99.         }
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement