gpt4 book ai didi

c# - 从具有 IList 返回类型的方法返回 ReadOnlyCollection

转载 作者:太空狗 更新时间:2023-10-30 00:09:12 24 4
gpt4 key购买 nike

这里我有以下代码:

    private IList<IState> _states = new List<IState>();
private ReadOnlyCollection<IState> _statesViewer;

public IList<IState> States { get { return _statesViewer; } }

我认为通常返回接口(interface)比具体类本身更可取,但在这种情况下,我不应该将 States 属性的返回类型设置为 ReadOnlyCollection

如果我这样设置 IList,我的库的任何用户都会认为您可以用它做任何事情,这意味着添加元素。这不是真的,我肯定会违反契约(Contract),将其作为 IList 公开。

我的这个观点是否正确,还是我还遗漏了什么?

最佳答案

做任何让 API 最清晰的事情。如果调用者只需要枚举它,您可以将其公开为 IEnumerable<T> , 但我不会担心将其公开为 ReadOnlyCollection .当然,您可以仅使用索引器和枚举器来声明自定义类型(接口(interface)或类)

关于c# - 从具有 IList 返回类型的方法返回 ReadOnlyCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2711407/

24 4 0