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