我有一个只读属性:
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 = ....
}