Sunday, June 20, 2010

Использование коллекций

Недавно возникла у меня необходимость определиться с тем, какие типы коллекций лучше использовать для публичного 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 of Collection<T> for properties or return values representing read/write collections.
  • DO use ReadOnlyCollection<T>, a subclass of ReadOnlyCollection<T>, or in rare cases IEnumerable<T> for properties or return values representing read-only collections.

No comments:

Post a Comment