【发布时间】:2012-02-11 22:44:53
【问题描述】:
我正在开发一个使用列表来处理用户先前猜测的应用程序。下面是(私有)列表和访问列表的属性。
为了防止隐私泄露,我使用了 ReadOnlyCollection,这也是我在属性中只有一个 getter 的原因(元素在类中直接添加到列表中,而不是通过属性添加)。
现在解决问题。下面的代码生成错误信息:
- TheNameOfTheClass.PreviousGuesses.get 必须声明一个主体,因为它没有标记为抽象或外部。自动实现的属性必须同时定义 get 和 set 访问器。
- 无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.ObjectModel.ReadOnlyCollection”。
如何解决?提前致谢!
private List<int> _previousGuesses;
public ReadOnlyCollection<int> PreviousGuesses {
get {
return _previousGuesses;
}
}
编辑:好的,所以问题 nr 2 解决了(感谢 Zortkun!)。第一个问题怎么样,我不能只使用吸气剂,有什么想法吗?
【问题讨论】:
-
ReadOnlyCollection 有一个构造函数,如果我没记错的话,它会占用你的列表。
return new ReadOnlyCollection(_previousGuesses);尝试重新编译,看看您的其他错误是否消失。 -
您需要在尝试从方法调用访问它之前初始化集合,Getter 只是一个方法调用。
标签: c# asp.net list readonly-collection