Выдано исключение типа "System.StackOverflowException" - C#
Формулировка задачи:
Всем доброго времени суток.
Создал класс Students
Вот его листинг
Когда пытаюсь свойству Surname или Name сделать проверку и присвоить значение, идет аварийное завершение.
И сообщение об ошибке:
При обходе отладчиком, он операцию повторяет как в цикле, хотя откуда тут цикл не понимаю(
class Students
{
Regex reg = new Regex(@"[a-zA-Z]");
public string Surname //Фамилия
{
get
{
return Surname;
}
set
{
if (reg.IsMatch(value) && value.Length <= 20)
{
Surname = value;
}
else
{
Console.WriteLine("Фамилия {0} не соответствует шаблону", value);
Surname = "";
}
}
}
public string Name //Имя
{
get
{
return Name;
}
set
{
if (reg.IsMatch(value) && value.Length <= 15)
{
Surname = value;
return;
}
else
{
Console.WriteLine("Имя {0} не соответствует шаблону",value);
Surname = "";
}
}
}
}
{"Выдано исключение типа "System.StackOverflowException"."}
Решение задачи: «Выдано исключение типа "System.StackOverflowException"»
textual
Листинг программы
class Students
{
Regex reg = new Regex(@"[a-zA-Z]");
private string _name;
private string _surname;
public string Surname //Фамилия
{
get
{
return _surname;
}
set
{
if (reg.IsMatch(value) && value.Length <= 20)
{
_surname = value;
}
else
{
Console.WriteLine("Фамилия {0} не соответствует шаблону", value);
_surname = "";
}
}
}
public string Name //Имя
{
get
{
return _name;
}
set
{
if (reg.IsMatch(value) && value.Length <= 15)
{
_name = value;
}
else
{
Console.WriteLine("Имя {0} не соответствует шаблону",value);
_name = "";
}
}
}
}