StackOverflowException при добавление в list<> нового экземпляра - C#

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

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

Здравствуйте, уважаемы! Я начал изучать c# и вообще ООП сравнительно недавно...И вот наткнулся на такую проблему...есть код
namespace App
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
            
            List <person> personList = new List<person>();
            
            personList.Add(new person("Анна", "Петрова", 15)); //Здесь ругается при добавление возраста
            personList.Add(new person("Марат", "Сафин", 25));
            
            personList.Sort();
        }
        
    }
    
    public class person : IComparable
    {
        public person (string FirstName, string LastName, int age)
        {
            this.FirstName = FirstName;
            this.LastName = LastName;
            this.Age = age;
        }
        public person () { }
        public int CompareTo (Object obj)
        {
            if (obj == null) throw new ArgumentException("Object is not a Person");;
            person _person = (person) obj;
            
            return this.FirstName.CompareTo(_person.FirstName);
        }
        public string FirstName {get; set;}
        public string LastName  {get; set;}
        public int Age
        {
            get {return Age;}
            set { //запустил по шагам, здесь почему-то происходит зацикливание, как следствие - StackOverflowException
                    if ( value < 0 ) throw new Exception ("Возраст должен быть положительным!");
                    if ( value == 0 ) throw new Exception ("Возраст должен быть > 0!");
                
                    Age = value;
                 }  
        }
    }
}
Помогите пожалуйста советом...

Решение задачи: «StackOverflowException при добавление в list<> нового экземпляра»

textual
Листинг программы
        private int age;
        public int Age
        {
            get {return age;}
            set { //запустил по шагам, здесь почему-то происходит зацикливание, как следствие - StackOverflowException
                    if ( value < 0 ) throw new Exception ("Возраст должен быть положительным!");
                    if ( value == 0 ) throw new Exception ("Возраст должен быть > 0!");
                
                    age = value;
                 }  
        }

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


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

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

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