【问题标题】:Issue when using only a getter and issue with List in c#仅在 c# 中使用 getter 和 List 时出现问题
【发布时间】:2012-02-11 22:44:53
【问题描述】:

我正在开发一个使用列表来处理用户先前猜测的应用程序。下面是(私有)列表和访问列表的属性。

为了防止隐私泄露,我使用了 ReadOnlyCollection,这也是我在属性中只有一个 getter 的原因(元素在类中直接添加到列表中,而不是通过属性添加)。

现在解决问题。下面的代码生成错误信息:

  1. TheNameOfTheClass.PreviousGuesses.get 必须声明一个主体,因为它没有标记为抽象或外部。自动实现的属性必须同时定义 get 和 set 访问器。
  2. 无法将类型“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


【解决方案1】:

我想好处是不要发布在谷歌上弹出的第一件事,但是这个怎么样?

   return _previousGuesses.AsReadOnly();

来自here

【讨论】:

  • 我认为第一个问题与第二个问题有关。 @JasonCraig 你能详细说明第二个吗(如果你还记得的话)?
猜你喜欢
  • 2017-05-21
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 2023-01-18
  • 2015-11-13
  • 2011-05-25
  • 1970-01-01
  • 2022-11-21
相关资源
最近更新 更多