2010-03-16 2 views
8

그래서, 난 그냥 (여기에 또 다른 질문에 대한 답변에 따라 순전히 호기심에서) HashSet의의 구현 세부 정보를 찾기 위해 노력하고 반사경 주위에 파고 및 다음 발견 된 다음에 너무 깊이 보지 않고TreeSet <T>이 .NET의 내부 유형인 이유는 무엇입니까?

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

을 세부 사항은 Self-Balancing Binary Search Tree처럼 보입니다.

제 질문은이 수업이 internal 인 이유에 대한 통찰력이있는 사람이 있습니까? 그것은 단순히 다른 컬렉션 유형이 내부적으로 사용하고 BST의 복잡성을 일반 대중에서 숨기 때문입니다 ... 아니면 기본 기반에서 벗어나나요?

답변

10

형식을 공개하는 것은 내부적으로 노출하는 것보다 훨씬 많은 작업이 필요하다는 것을 의미합니다. 즉, 나중에 API를 크게 변경하고 싶지 않으면 문서를 작성해야한다는 것을 의미합니다. 그것은 완전히 등등.

나는 미래의 버전에서 TreeSet<T>이 노출되는 것을보고 놀라지 않을 것이지만, 뭔가 공개하기 전에 MS가 신중해야한다는 것은 의미가있다.

는 (나는 .NET 4 SortedSet<T>이 BTW, 기본적으로 트리 세트입니다 있다고 생각합니다.)

+0

네 말이 맞아. SortedSet 빨강 - 검정색 BST처럼 보입니다. 빠른 답변 감사합니다. –

+2

이 기능을 공개하기 위해 실제로 얼마나 많은 Microsoft 직원이 근무하는지 알아 보려면 다음 문서를 읽어보십시오. http://blogs.msdn.com/ericlippert/archive/2003/10/28/53298.aspx – Steven

관련 문제