Ошибка при отладке событий в консольном приложении - C#
Формулировка задачи:
Есть вот такой несложный код, демонстрирующий работу событий(консольное приложение):
Когда я начинаю выполнять программу по F11, т.е. в отладке, когда управление переходит на
строчку "test.Name = "Новое имя";" то мое консольное окошко вдруг закрывается. И если идти дальше возникает
ошибка "The debugger cannot continue running the process. Process was terminated."
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();
}
}
}
}Решение задачи: «Ошибка при отладке событий в консольном приложении»
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();
}
}
}
}