#c_sharp
При обращении к полю для получения значения, для которого заданы get и set происходит многократное обращение к этому полю, в результате чего генерируется StackOverflowException. Если же сделать поле доступным, т.е. public, проблема исчезает. class Sphere : Figure { public int radius { get { return radius; } private set { radius = value; } } //неважный код public Sphere(int r, double d) : base(d) { this.radius = r; } }
Ответы
Ответ 1
У вас код: int radius { get { return radius; } private set { radius = value; } } при присвоении вы вызываете замкнутый цыкл, с которого невозможно выйти.(включи дебаг и понажимай F11 что бы увидеть что именно комп делает) нужно писать private int _radius; public int Radius { get { return _radius; } private set { _radius = value; } } и все будет в порядке. Как другой вариант, достаточно написать: public int radius { get; private set;}
Комментариев нет:
Отправить комментарий