Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace lab4_1
- {
- // Создать приложение, в котором генератор события “снабжает”
- // событие следующей информацией: название поезда, время
- // прибытия, номер вагона и места. Приемник события распечатывает
- // эту информацию.
- class TrainEventArgs : EventArgs
- {
- string trainName;
- public string TrainName
- {
- get
- {
- return trainName;
- }
- }
- string arrivalTime;
- public string ArrivalTime
- {
- get
- {
- return arrivalTime;
- }
- }
- int railcarNumber;
- public int RailcarNumber
- {
- get
- {
- return railcarNumber;
- }
- }
- int placeNumber;
- public int PlaceNumber
- {
- get
- {
- return placeNumber;
- }
- }
- public TrainEventArgs(string name, string time, int railcar, int place)
- {
- this.trainName = name;
- this.arrivalTime = time;
- this.railcarNumber = railcar;
- this.placeNumber = place;
- }
- }
- class GenEvent // Генератор событий - издатель
- {
- public delegate void TrainEventHandler(object sender, TrainEventArgs e);
- public event TrainEventHandler OnTrainHandler;
- public void NewEvent(string name, string time, int railcar, int place)
- {
- TrainEventArgs e = new TrainEventArgs(name, time, railcar, place);
- if (OnTrainHandler != null)
- OnTrainHandler(this, e);
- }
- //Подписчик
- class RecEvent
- {
- //Обработчик события
- void OnRecChange(object source, TrainEventArgs e)
- {
- Console.WriteLine("\nНазвание поезда: {0} \nВремя прибытия: {1} \nНомер вагона: {2} \nНомер места: {3}", e.TrainName, e.ArrivalTime, e.RailcarNumber, e.PlaceNumber);
- }
- // в конструкторе класса осуществляется подписка
- public RecEvent(GenEvent gnEvent)
- {
- gnEvent.OnTrainHandler += new GenEvent.TrainEventHandler(OnRecChange);
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- GenEvent gnEvent = new GenEvent();
- RecEvent inventoryWatch = new RecEvent(gnEvent);
- gnEvent.NewEvent("STAR", "10:30", 12, 39);
- Console.ReadKey(true);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement