У меня есть ICollection<T>
, называемый foos
в моем классе, который я хочу открыть как доступный только для чтения (см. этот вопрос). Я вижу, что интерфейс определяет свойство .IsReadOnly
, что кажется подходящим... Мой вопрос заключается в следующем: как сделать очевидным для потребителя класса, что foos
доступен только для чтения?
Я не хочу полагаться на них, не забывая запросить .IsReadOnly
перед тем, как попробовать не реализованный метод, например .Add()
. В идеале я хотел бы показать foos
как ReadOnlyCollection<T>
, но он не реализует IList<T>
. Должен ли я раскрывать foo
с помощью метода, называемого, например, GetReadOnlyFooCollection
, а не через свойство? Если это так, разве это не смущает кого-то, кто тогда ожидает ReadOnlyCollection<T>
?
Это С# 2.0, поэтому методы расширения, такие как ToList()
, недоступны...