Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using System.Text;
  4. using System.Threading.Tasks;
  5. using System;
  6.  
  7. namespace _18._02
  8. {
  9. public class PhoneEventArgs : EventArgs
  10. {
  11. public int CallerNumber { get; }
  12. public PhoneEventArgs(int callernumber)
  13. {
  14. CallerNumber = callernumber;
  15. }
  16. }
  17. public class Phone
  18. {
  19. List<int> book = new List<int>();
  20. public event EventHandler<PhoneEventArgs> OnCall;
  21.  
  22. public int Number { get; }
  23.  
  24. public Phone(int number)
  25. {
  26. Number = number;
  27. book.Add(number);
  28. }
  29.  
  30. public void AddPhoneToBook(Phone phone)
  31. {
  32. if (phone.Number == this.Number)
  33. {
  34. Console.WriteLine($"Номер {Number} совпадает с номером телефона");
  35. }
  36. else
  37. {
  38. if (book.Contains(phone.Number))
  39. {
  40. Console.WriteLine($"Номер {Number} уже есть в записной книжке");
  41. }
  42. else
  43. {
  44. book.Add(phone.Number);
  45. }
  46. }
  47. }
  48.  
  49. public bool Call(int number)
  50. {
  51. if (book.Contains(number))
  52. {
  53. this.OnCall?.Invoke(this, new PhoneEventArgs(number));
  54. return true;
  55. }
  56. return false;
  57. }
  58.  
  59. }
  60. class Program
  61. {
  62. public static Random rnd = new Random();
  63. static void Main(string[] args)
  64. {
  65. ConsoleKeyInfo keytoexit;
  66. do
  67. {
  68. Phone[] array = new Phone[100];
  69. for (int i = 0; i < array.Length; i++)
  70. {
  71. array[i] = new Phone(rnd.Next(100, 400));
  72. array[i].OnCall += (object sender, PhoneEventArgs phone) =>
  73. {
  74. Phone caller = sender as Phone;
  75. Console.WriteLine($"На телефон {phone.CallerNumber} " +
  76. $"был совершен звонок с телефона {caller.Number}");
  77.  
  78. };
  79. }
  80.  
  81. for (int i = 0; i < array.Length; i++)
  82. {
  83. array[i].AddPhoneToBook(new Phone(rnd.Next(100, 400)));
  84. array[i].Call(rnd.Next(100, 400));
  85. }
  86.  
  87. Console.WriteLine("Для выхода нажмите Escape...");
  88. keytoexit = Console.ReadKey(true);
  89.  
  90. } while (keytoexit.Key!= ConsoleKey.Escape);
  91. }
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement