.net 为什么TreeSet<;T>;NET中的内部类型?
因此,我只是在Reflector周围挖掘,试图找到HashSet的实现细节(完全出于好奇,基于对另一个问题的回答),并注意到以下几点:.net 为什么TreeSet<;T>;NET中的内部类型?,.net,generics,collections,binary-tree,.net,Generics,Collections,Binary Tree,因此,我只是在Reflector周围挖掘,试图找到HashSet的实现细节(完全出于好奇,基于对另一个问题的回答),并注意到以下几点: internal class TreeSet<T> : ICollection<T>, IEnumerable<T>, ICollection, IEnumerable, ISerializable, IDeserializationCallback 内部类树集:ICollection、IEnumerable、ICo
internal class TreeSet<T> : ICollection<T>, IEnumerable<T>, ICollection,
IEnumerable, ISerializable, IDeserializationCallback
内部类树集:ICollection、IEnumerable、ICollection、,
IEnumerable、ISerializable、IDeserializationCallback
在不深入了解细节的情况下,它看起来就像一个自平衡的二叉搜索树
我的问题是,有没有人能洞察到为什么这个类是内部的?这仅仅是因为其他集合类型在内部使用它,并向一般大众隐藏BST的复杂性……还是我太离谱了?公开一个类型所涉及的工作远不止是在内部公开它-这意味着您必须绝对确保不想在以后对API进行重大更改,你必须把它完整地记录下来等等 如果在未来的版本中发现一个
TreeSet
,我不会感到惊讶,但微软在公开某些内容之前要保持谨慎是有道理的
(顺便说一句,我相信.NET4中的
SortedSet
基本上是一个树集)。你说得对。SortedSet看起来像一个红黑的BST。感谢您的快速响应。如果您想知道公开此功能实际需要多少Microsoft员工,请阅读以下文章: