【问题标题】:Why is TreeSet<T> an internal type in .NET?为什么 TreeSet<T> 是 .NET 中的内部类型?
【发布时间】:2011-01-28 03:51:43
【问题描述】:

所以,我只是在 Reflector 周围挖掘,试图找到 HashSet 的实现细节(出于对此处另一个问题的回答的纯粹好奇)并注意到以下内容:

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

不用太深入细节,它看起来就像一棵自平衡二叉搜索树。

我的问题是,有没有人知道为什么这门课是internal?仅仅是因为其他集合类型在内部使用它并向大众隐藏了 BST 的复杂性……还是我离谱?

【问题讨论】:

    标签: .net generics collections binary-tree


    【解决方案1】:

    公开公开类型比仅在内部公开类型涉及更多工作 - 这意味着您必须绝对确定以后不想对 API 进行重大更改,您必须记录它彻底等。

    如果TreeSet&lt;T&gt; 在未来的版本中暴露,我不会感到惊讶,但 MS 在公开某些内容之前要谨慎是有道理的。

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

    【讨论】:

    猜你喜欢
    • 2015-04-24
    • 2011-02-18
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多