Недавно возникла у меня необходимость определиться с тем, какие типы коллекций лучше использовать для публичного API. Оказалось, что наша библиотека светит наружу как обычные массивы, так и коллекции List<T> и Collection<T>.
Использовать массивы в публичном API – плохая идея. Объяснения почему это так смотрите в статье Эрика Липперта Arrays considered somewhat harmful.
Почему стоит использовать Collection<T> вместо List<T> смотрите здесь и здесь.
Кроме того "Framework Design Guidelines" в разделе 8.3 содержит множество рекомендаций относительно использования коллекций. Основные из них:
- DO NOT provide settable collection properties.
- DO use
Collection<T>
or a subclass ofCollection<T>
for properties or return values representing read/write collections. - DO use
ReadOnlyCollection<T>
, a subclass ofReadOnlyCollection<T>
, or in rare casesIEnumerable<T>
for properties or return values representing read-only collections.
No comments:
Post a Comment