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

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

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

Есть вот такой несложный код, демонстрирующий работу событий(консольное приложение):
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            Test test = new Test();
            test.eventChangeName += new Action(handlerChangeName);
            test.eventChangeSurName += new Action(handlerChangeSurName);
 
            test.Name = "Новое имя";
 
            Console.ReadLine();
 
        }
 
        private static void handlerChangeSurName()
        {
            Console.WriteLine("Изменилось фамилия!!!");
        }
 
        private static void handlerChangeName()
        {
            Console.WriteLine("Изменилось имя!!!");
        }
    }
 
    class Test
    {
        
        public event Action eventChangeName;
        public event Action eventChangeSurName;
 
        public string Name
        {
            get{return Name;}
            set
            {
                Name = value;
                if (eventChangeName != null)
                    eventChangeName();
            }
        }
 
        public string Surname
        {
            get { return Surname; }
            set
            {
                Surname = value;
                if (eventChangeSurName != null)
                    eventChangeSurName();
            }
        }
    }
}
Когда я начинаю выполнять программу по F11, т.е. в отладке, когда управление переходит на строчку "test.Name = "Новое имя";" то мое консольное окошко вдруг закрывается. И если идти дальше возникает ошибка "The debugger cannot continue running the process. Process was terminated."

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

textual
Листинг программы
using System;
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            Test test = new Test();
            test.eventChangeName += new Action(handlerChangeName);
            test.eventChangeSurName += new Action(handlerChangeSurName);
 
            test.Name = "Новое имя";
 
            Console.ReadLine();
 
        }
 
        private static void handlerChangeSurName()
        {
            Console.WriteLine("Изменилось фамилия!!!");
        }
 
        private static void handlerChangeName()
        {
            Console.WriteLine("Изменилось имя!!!");
        }
    }
 
    class Test
    {
        private string name = string.Empty;
        private string surname = string.Empty;
 
        public event Action eventChangeName;
        public event Action eventChangeSurName;
 
        public string Name
        {
            get { return name; }
            set
            {
                name = value;
                if (eventChangeName != null)
                    eventChangeName();
            }
        }
 
        public string Surname
        {
            get { return surname; }
            set
            {
                surname = value;
                if (eventChangeSurName != null)
                    eventChangeSurName();
            }
        }
    }
}

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


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

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

8   голосов , оценка 4.25 из 5
Похожие ответы