При обращении к полю для получения значения, для которого заданы 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;
}
}
Ответ
У вас код:
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;}
Комментариев нет:
Отправить комментарий