Почему TreeSet <T> является внутренним типом в.NET?

Так, я просто рыл вокруг Отражателя, пытающегося найти детали реализации HashSet (из чистого любопытства на основе ответа на другой вопрос здесь), и заметил следующее:

internal class TreeSet<T> : ICollection<T>, IEnumerable<T>, ICollection,
    IEnumerable, ISerializable, IDeserializationCallback

Не изучая слишком глубоко детали, это похоже на Самоуравновешивающееся Дерево двоичного поиска.

Мой вопрос, там кто-либо там с пониманием относительно того, почему этот класс internal? Это просто, потому что другие типы набора используют его внутренне и скрывают сложности BST от общих масс..., или я путь от основы?

8
задан Jon Seigel 8 May 2010 в 23:27
поделиться

1 ответ

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

Я не удивлюсь, если обнаружу TreeSet , представленный в следующем выпуске, но это имеет смысл для MS быть осторожным, прежде чем делать что-то публичное.

(Я считаю, что SortedSet в .NET 4 в основном представляет собой древовидный набор, кстати.)

10
ответ дан 5 December 2019 в 17:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: