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

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

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

Всем доброго времени суток. Создал класс Students Вот его листинг
Листинг программы
  1. class Students
  2. {
  3. Regex reg = new Regex(@"[a-zA-Z]");
  4. public string Surname //Фамилия
  5. {
  6. get
  7. {
  8. return Surname;
  9. }
  10. set
  11. {
  12. if (reg.IsMatch(value) && value.Length <= 20)
  13. {
  14. Surname = value;
  15. }
  16. else
  17. {
  18. Console.WriteLine("Фамилия {0} не соответствует шаблону", value);
  19. Surname = "";
  20. }
  21. }
  22. }
  23. public string Name //Имя
  24. {
  25. get
  26. {
  27. return Name;
  28. }
  29. set
  30. {
  31. if (reg.IsMatch(value) && value.Length <= 15)
  32. {
  33. Surname = value;
  34. return;
  35. }
  36. else
  37. {
  38. Console.WriteLine("Имя {0} не соответствует шаблону",value);
  39. Surname = "";
  40. }
  41. }
  42. }
  43. }
Когда пытаюсь свойству Surname или Name сделать проверку и присвоить значение, идет аварийное завершение. И сообщение об ошибке:
{"Выдано исключение типа "System.StackOverflowException"."}
При обходе отладчиком, он операцию повторяет как в цикле, хотя откуда тут цикл не понимаю(

Решение задачи: «Выдано исключение типа "System.StackOverflowException"»

textual
Листинг программы
  1.     class Students
  2.     {
  3.         Regex reg = new Regex(@"[a-zA-Z]");
  4.         private string _name;
  5.         private string _surname;
  6.  
  7.         public string Surname  //Фамилия
  8.         {
  9.             get
  10.             {
  11.                 return _surname;
  12.             }
  13.             set
  14.             {
  15.                 if (reg.IsMatch(value) && value.Length <= 20)
  16.                 {
  17.                     _surname = value;
  18.                
  19.                 }
  20.                 else
  21.                 {
  22.                     Console.WriteLine("Фамилия {0} не соответствует шаблону", value);
  23.                     _surname = "";
  24.                 }
  25.             }
  26.         }
  27.         public string Name     //Имя
  28.         {
  29.             get
  30.             {
  31.                 return _name;
  32.             }
  33.             set
  34.             {
  35.                 if (reg.IsMatch(value) && value.Length <= 15)
  36.                 {
  37.                     _name = value;
  38.                 }
  39.                 else
  40.                 {
  41.                     Console.WriteLine("Имя {0} не соответствует шаблону",value);
  42.                     _name = "";
  43.                 }
  44.             }
  45.         }      
  46.      }

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


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

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

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы