为什么TreeSet <t>是.NET中的内部类型?</t>

时间:2010-03-16 14:50:53

标签: .net generics collections binary-tree

所以,我只是在Reflector周围试图找到HashSet的实现细节(基于对这里另一个问题的答案纯粹的好奇心)并注意到以下内容:

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

如果不深入细节,它看起来像是一个自平衡二进制搜索树。

我的问题是,有没有人知道为什么这个班级是internal?仅仅是因为其他集合类型在内部使用它并隐藏了BST与普通群众的复杂性......还是我离开了基地?

1 个答案:

答案 0 :(得分:10)

公开公开类型涉及的工作远远多于仅在内部公开 - 这意味着您必须绝对确定您以后不希望对API进行重大更改,您必须将其记录下来彻底等等。

在将来的版本中发现TreeSet<T>时,我不会感到惊讶,但MS在公开宣传之前要谨慎行事。

(我相信.NET 4中的SortedSet<T>基本上是一个树集,顺便说一句。)