Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 为什么TreeSet<;T>;NET中的内部类型?_.net_Generics_Collections_Binary Tree - Fatal编程技术网

.net 为什么TreeSet<;T>;NET中的内部类型?

.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

因此,我只是在Reflector周围挖掘,试图找到HashSet的实现细节(完全出于好奇,基于对另一个问题的回答),并注意到以下几点:

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员工,请阅读以下文章: