限制在包含它的 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();
}
}
我在 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();
}
}