限制在包含它的 class 之外使用 List.Add()

Limit use of List.Add() outside of class that holds it

我在 class MyClass 中有一个 public 属性 类型 List<>。它是 public 因为 MyClass 之外的代码(包括 XAML 绑定)需要能够访问和更改数据。但是,MyClass 之外的元素不能做的一件事是调用 Add() 方法。将新方法添加到列表的唯一方法应该是通过 MyClass.MyListAdder() 方法。

有办法做到这一点吗?

您可以尝试切换到 ReadOnlyCollection<T>。 API 与 List<T> 略有不同,但可能足以满足您的需求。

这可能是您要查找的内容:

List<object> someList = new List<object>();

public ReadOnlyCollection<object> SomeList
{
    get
    {
        return someList.AsReadOnly();
    }
}