IradonlyCollection против ReadonlyCollectionC#

Место общения программистов C#
Ответить
Anonymous
 IradonlyCollection против ReadonlyCollection

Сообщение Anonymous »

По SO уже есть пара похожих вопросов, но ни один из тех, что я нашел, действительно не затрагивает эту конкретную тему, так что вот...

Насколько я понимаю, всегда следует пытаться вернуть интерфейс через конкретный класс. Не буду вдаваться в причины, об этом уже много написано в SO.

Однако в случае IReadOnlyCollection и ReadOnlyCollection Я не уверен, следует ли следовать этому правилу.

IReadOnlyCollection можно легко преобразовать в список, что.. . хорошо... нарушает аспект ReadOnly, обещанный контрактом.

Код: Выделить всё

ReadOnlyCollection
однако не может быть введено в список , но это означает возвращение конкретного класса. Мне кажется, что в большинстве случаев readonly*/iReadonly* объект возвращается только возвращаемым методом или свойством только для чтения.
Так что даже если пользователь решает отменить его на что -то еще (в случае с Iradonly*< /code> Obj Readonly* object), на самом деле нет никакого способа, чтобы класс, разоблачающий readonly*/ireadonly* объект, примет это обратно.

Итак, какова рекомендация здесь, вернуть интерфейс Iradonly* или конкретный readonly* экземпляр класса?

Подробнее здесь: https://stackoverflow.com/questions/451 ... collection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»