Свойство и System.StackOverflowException - C#
Формулировка задачи:
Доброго времени суток! Простое задание на наследование. Всё вроде как понятно, но выпадает ошибка System.StackOverflowException. Пытался добавлять например в Square еще private int perimetr , и его уже записывать в свойство, но тогда значение у меня всегда 0. Подскажите, в чем проблема?
Листинг программы
- class Square
- {
- public int a;
- public Square (int a)
- {
- this.a = a;
- }
- public int Perimetr
- {
- set
- {
- Perimetr = a * 2;
- }
- get
- {
- return Perimetr;
- }
- }
- }
- class Rectangle : Square
- {
- public int b;
- public Rectangle(int a, int b)
- :base (a)
- {
- this.b = b;
- }
- public new int Perimetr
- {
- get
- {
- return Perimetr;
- }
- set
- {
- Perimetr = (a * 2) + (b * 2);
- }
- }
- }
- class Demo
- {
- static void Main()
- {
- int tempA;
- int tempB;
- Console.WriteLine("Please enter figure side A");
- tempA = Convert.ToInt32(Console.ReadLine());
- Console.WriteLine("Please enter figure side B");
- tempB = Convert.ToInt32(Console.ReadLine());
- if (tempA == tempB)
- {
- Square Sq = new Square(tempA);
- Console.WriteLine("Square perimetr is: " + Sq.Perimetr);
- }
- else
- {
- Rectangle Re = new Rectangle(tempA, tempB);
- Console.WriteLine("Rectangle perimetr is: " + Re.Perimetr);
- }
- Console.ReadLine();
- }
- }
Решение задачи: «Свойство и System.StackOverflowException»
textual
Листинг программы
- public int Perimetr
- {
- get
- {
- return a * 2;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д