Warum ist TreeSetT ein interner Typ in .NET?

8

Also habe ich gerade nach Reflector geforscht, als ich versuchte, die Implementierungsdetails von HashSet zu finden (aus purer Neugier basierend auf der Antwort auf eine andere Frage) und folgendes bemerkt habe:

%Vor%

Ohne zu tief in die Details zu blicken, sieht es wie ein selbstbalancierender binärer Suchbaum aus.

Meine Frage ist, gibt es jemanden da draußen mit der Einsicht, warum diese Klasse internal ist? Ist es einfach, weil die anderen Sammlungstypen es intern verwenden und die Komplexität eines BST vor der allgemeinen Masse verbergen ... oder bin ich weit weg von der Basis?

    
Justin Niessner 16.03.2010, 14:50
quelle

1 Antwort

10

Wenn Sie einen Typ öffentlich veröffentlichen, ist viel mehr Arbeit erforderlich, als nur intern verfügbar zu machen. Es bedeutet, dass Sie absolut sicher sein müssen, dass Sie später keine wesentlichen Änderungen an der API vornehmen möchten. Sie müssen sie dokumentieren gründlich usw.

Ich wäre nicht überrascht, wenn ich eine TreeSet<T> in einer zukünftigen Veröffentlichung finden würde, aber es ist sinnvoll, dass MS vorsichtig ist, bevor sie etwas veröffentlichen.

(Ich glaube, dass SortedSet<T> in .NET 4 im Grunde eine Baummenge ist, übrigens.)

    
Jon Skeet 16.03.2010, 14:53
quelle