C# NET 3.5: свойство или индексатор не могут быть назначены на "-", это только для чтения
У меня есть свойство только для чтения:
public CollectionView View { get; }
и я пытаюсь инициализировать его из конструктора класса:
public MyClass()
{
this.View = ......
}
Но ошибка, описанная в названии, появляется. Я использую NET 3.5 в Visual Studio 2008. Я помню, что в более поздних версиях.NET и Visual Studio свойство только для чтения могло быть инициализировано / назначено только из конструктора. Разве это не возможно в.NET 3.5? Если нет, как я могу сделать это в.NET 3.5? Я имею в виду, я хочу свойство только для чтения и назначаться только один раз в конструкторе.
3 ответа
В C# 3.0 они не добавили специальную обработку для автообъектов, доступных только для чтения, поэтому вы должны сделать это по-старому:
public class MyClass {
private readonly CollectionView _View;
public CollectionView View { get { return _View; } }
public MyClass() {
this._View = ...;
}
}
Я думаю, что правильный синтаксис должен быть:
public CollectionView View { get; private set; }
Вы можете использовать поле только для чтения и свойство только с геттером. Как это
readonly CollectionView _view;
public CollectionView View { get {return _view;} }
public MyClass()
{
_view = ....
}