Dot-Net
為什麼 TreeSet<T> 是 .NET 中的內部類型?
所以,我只是在 Reflector 周圍探勘,試圖找到 HashSet 的實現細節(出於對另一個問題的回答的純粹好奇),並註意到以下內容:
internal class TreeSet<T> : ICollection<T>, IEnumerable<T>, ICollection, IEnumerable, ISerializable, IDeserializationCallback無需深入細節,它看起來就像一個自平衡二叉搜尋樹。
我的問題是,有沒有人知道為什麼這門課是這樣的
internal?僅僅是因為其他集合類型在內部使用它並向大眾隱藏了 BST 的複雜性……還是我離譜?
公開一個類型比只在內部公開它涉及更多的工作——這意味著你必須絕對確定你以後不想對 API 進行重大更改,你必須徹底記錄它等等。
在未來的版本中發現一個暴露我不會感到驚訝
TreeSet<T>,但對於 MS 在公開某些內容之前保持謹慎是有道理的。(我相信
SortedSet<T>在 .NET 4 中基本上是一個樹集,順便說一句。)