Выдано исключение типа "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 = ""; } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д