Ошибка при отладке событий в консольном приложении - C#

Узнай цену своей работы

Формулировка задачи:

Есть вот такой несложный код, демонстрирующий работу событий(консольное приложение):
Листинг программы
  1. namespace ConsoleApplication4
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. Test test = new Test();
  8. test.eventChangeName += new Action(handlerChangeName);
  9. test.eventChangeSurName += new Action(handlerChangeSurName);
  10. test.Name = "Новое имя";
  11. Console.ReadLine();
  12. }
  13. private static void handlerChangeSurName()
  14. {
  15. Console.WriteLine("Изменилось фамилия!!!");
  16. }
  17. private static void handlerChangeName()
  18. {
  19. Console.WriteLine("Изменилось имя!!!");
  20. }
  21. }
  22. class Test
  23. {
  24. public event Action eventChangeName;
  25. public event Action eventChangeSurName;
  26. public string Name
  27. {
  28. get{return Name;}
  29. set
  30. {
  31. Name = value;
  32. if (eventChangeName != null)
  33. eventChangeName();
  34. }
  35. }
  36. public string Surname
  37. {
  38. get { return Surname; }
  39. set
  40. {
  41. Surname = value;
  42. if (eventChangeSurName != null)
  43. eventChangeSurName();
  44. }
  45. }
  46. }
  47. }
Когда я начинаю выполнять программу по F11, т.е. в отладке, когда управление переходит на строчку "test.Name = "Новое имя";" то мое консольное окошко вдруг закрывается. И если идти дальше возникает ошибка "The debugger cannot continue running the process. Process was terminated."

Решение задачи: «Ошибка при отладке событий в консольном приложении»

textual
Листинг программы
  1. using System;
  2. namespace ConsoleApplication4
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             Test test = new Test();
  9.             test.eventChangeName += new Action(handlerChangeName);
  10.             test.eventChangeSurName += new Action(handlerChangeSurName);
  11.  
  12.             test.Name = "Новое имя";
  13.  
  14.             Console.ReadLine();
  15.  
  16.         }
  17.  
  18.         private static void handlerChangeSurName()
  19.         {
  20.             Console.WriteLine("Изменилось фамилия!!!");
  21.         }
  22.  
  23.         private static void handlerChangeName()
  24.         {
  25.             Console.WriteLine("Изменилось имя!!!");
  26.         }
  27.     }
  28.  
  29.     class Test
  30.     {
  31.         private string name = string.Empty;
  32.         private string surname = string.Empty;
  33.  
  34.         public event Action eventChangeName;
  35.         public event Action eventChangeSurName;
  36.  
  37.         public string Name
  38.         {
  39.             get { return name; }
  40.             set
  41.             {
  42.                 name = value;
  43.                 if (eventChangeName != null)
  44.                     eventChangeName();
  45.             }
  46.         }
  47.  
  48.         public string Surname
  49.         {
  50.             get { return surname; }
  51.             set
  52.             {
  53.                 surname = value;
  54.                 if (eventChangeSurName != null)
  55.                     eventChangeSurName();
  56.             }
  57.         }
  58.     }
  59. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы