Выдано исключение типа "System.StackOverflowException" - C#

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

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

Всем доброго времени суток. Создал класс Students Вот его листинг
   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 = "";
                }
 
            }
        }       
 
    }
Когда пытаюсь свойству Surname или Name сделать проверку и присвоить значение, идет аварийное завершение. И сообщение об ошибке:
{"Выдано исключение типа "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 = "";
                }
            }
        }       
     }

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


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

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

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