Рассмотрим следующий фрагмент кода, который не компилируется.
class Class
{
public double Value { get; set; }
public int Frequency { get; set; }
}
class BoxAndWhisker
{
private readonly List<Class> _classes = new List<Class>();
public BoxAndWhisker()
{
Classes = _classes.AsReadOnly();
}
public IReadOnlyList<Class> Classes { get; }
}
class Program
{
static void Main(string[] args)
{
BoxAndWhisker baw = new BoxAndWhisker
{
Classes =
{
new Class{ Value=1,Frequency=20},
new Class{Value=2,Frequency=10}
}
};
}
}
Я хочу, чтобы свойство Classes
было доступно только для чтения сразу после установки baw
. Как это сделать? Другими словами, Classes
должен быть доступен для записи в инициализаторе объекта, но только для чтения в других местах.
Редактировать
Я предпочитаю инициализатор объекта параметризованному конструктору.