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