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



我有一个只读属性:

public CollectionView View { get; }

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

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

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

在 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; }

您可以使用只读支持字段和仅包含 getter 的属性。喜欢这个

readonly CollectionView _view;
public CollectionView View { get {return _view;} }
public MyClass()
{
_view = ....
}

最新更新