c# - 在 C# 中,方法是否可以返回 List 以便客户端只能读取它而不能写入它?

标签 c# constants encapsulation immutability readonly

假设我有一个 C# 类:

class Foo
{
    private List<Bar> _barList;
    List<Bar> GetBarList() { return _barList; }
...
}

客户端可以调用它:

var barList = foo.GetBarList();
barList.Add( ... );

有没有办法让 Add 方法失败,因为只返回一个只读版本的 _barList

最佳答案

是的,在 GetBarList() 中返回 _barList.AsReadOnly() .

编辑:
正如迈克尔在下面指出的那样,您的方法必须返回 IList<Bar>。 .

关于c# - 在 C# 中,方法是否可以返回 List 以便客户端只能读取它而不能写入它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598726/

相关文章:

java - 封装:java中为什么叫keySet

c# - 在 ASP.NET MVC 2 中使用 SelectList 挣扎

c# - 内置整型值类型的位宽是固定的吗?

相同函数的 C const/非常量版本

c++ - 为什么 "auto const&"不是只读的?

C++:在不破坏封装的情况下将指针用作私有(private)成员变量?

c# - 在 asp.net 中创建 Bot fighter

javascript - 根据返回的数据隐藏和取消隐藏表 div

javascript - 维护: Assigning numbers to constants

c++ - C++中 "true"封装怎么做?