C# NET 3.5:属性或索引器不能分配给“--”,它是只读的
Posted
技术标签:
【中文标题】C# NET 3.5:属性或索引器不能分配给“--”,它是只读的【英文标题】:C# NET 3.5 : Property or indexer cannot be assigned to “--” it is read only 【发布时间】:2018-01-03 21:14:21 【问题描述】:我有一个只读属性:
public CollectionView View get;
我正在尝试从类构造函数初始化它:
public MyClass()
this.View = ......
但是出现了标题中描述的错误。我在 Visual Studio 2008 上使用 NET 3.5。我记得在更高版本的 .NET 和 Visual Studio 中,只读属性只能从构造函数初始化/分配。在 .NET 3.5 中不可能吗?如果没有,我该如何在 .NET 3.5 中做到这一点?我的意思是,我想要一个只读属性,并且只在构造函数中分配一次。
【问题讨论】:
【参考方案1】:您可以使用只读支持字段和只有 getter 的属性。像这样
readonly CollectionView _view;
public CollectionView View get return _view;
public MyClass()
_view = ....
【讨论】:
【参考方案2】:在 C# 3.0 中,他们没有为只读自动属性添加特殊处理,因此您必须使用旧方法:
public class MyClass
private readonly CollectionView _View;
public CollectionView View get return _View;
public MyClass()
this._View = ...;
【讨论】:
【参考方案3】:我认为正确的语法应该是:
public CollectionView View get; private set;
【讨论】:
私有设置器的问题并不能阻止非构造方法更改属性值。以上是关于C# NET 3.5:属性或索引器不能分配给“--”,它是只读的的主要内容,如果未能解决你的问题,请参考以下文章
不能将属性或索引器“string.this[int]”分配给——它是只读的
C# LINQ NET 3.5 SP1:使用 LINQ 按两个字段分组,并为组的所有成员分配一个相关的唯一 ID(整数)