Ограничить использование List.Add () вне класса, который его содержит - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть публичное свойство типа List<> в классе MyClass. Он является общедоступным, поскольку код за пределами MyClass (включая привязки XAML) должен иметь возможность доступа и изменения данных. Однако одна вещь, которую элементы вне MyClass НЕ МОГУТ сделать, это вызвать метод Add(). Единственный способ добавить новый метод в список - использовать метод MyClass.MyListAdder().

Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Это, вероятно, то, что вы ищете:

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

public ReadOnlyCollection<object> SomeList
{
    get
    {
        return someList.AsReadOnly();
    }
}
0 голосов
/ 30 апреля 2018

Вы можете попробовать переключиться на ReadOnlyCollection<T>. Он имеет немного другой API, чем List<T>, но может быть достаточно для ваших нужд.

...