C# NET 3.5:属性 或索引器不能分配给“--”它是只读的

C# NET 3.5 : Property or indexer cannot be assigned to “--” it is read only

我有一个只读 属性:

public CollectionView View { get; }

我正在尝试从 class 构造函数初始化它:

public MyClass()
{
   this.View = ......
}

但是出现了标题中描述的错误。我在 Visual Studio 2008 上使用 NET 3.5。我记得在更高版本的 .NET 和 Visual Studio 中,只读 属性 可能仅来自构造函数 initialized/assigned。在 .NET 3.5 中不可能吗?如果没有,我如何在 .NET 3.5 中执行此操作?我的意思是,我想要一个只读的 属性 并且只在构造函数中分配一次。

我认为正确的语法应该是:

public CollectionView View { get; private set; }

在 C# 3.0 中,他们没有为只读自动属性添加特殊处理,因此您必须以旧方式进行:

public class MyClass {
    private readonly CollectionView _View;
    public CollectionView View { get { return _View; } }

    public MyClass() {
        this._View = ...;
    }
}

您可以使用只读的支持字段和一个 属性 只有 getter。像这样

readonly CollectionView _view;

public CollectionView View { get {return _view;} }

public MyClass()
{
    _view = ....
}