Brak zgodności w dokumentacji msdn.

0

Słuchajcie, coś tu nie gra. W msdn jest czarno na białym napisane, że przestrzeń nazw System.Collections.Generics dostarcza klasę Colletion<T>, co już jest dziwne, bo z tego co wyczytałem w googlach, nie ma takiej przestrzeni nazw - jest nastmioast S.C.Generic, ale w tej przestrzeni (msdn podaje), nie ma klasy Collection<T>. Klasa Collection<T> jest w S.C.ObjectModel, ale gdy używam SCO, to nie mogę wtedy używać IComparer lub IComparable.

Sory, to jest adres z tym brakiem zgodności. Tak swoją drogą już bardziej skomplikować nie mogli:
https://msdn.microsoft.com/en-us/library/ms379572(v=vs.80).aspx

Wyświetla mi taki błąd:
Error 1 The type 'BT' cannot be used as type parameter 'BT' in the generic type or method Form1.WezelDrzewa<BT>'. There is no boxing conversion or type parameter conversion from 'BT' to 'System.Collections.Generic.Comparer<BT>'.

public class WezelyDrzewaBinarnego<BT> : Collection<WezelDrzewa<BT>>
        {
            public WezelyDrzewaBinarnego() : base() { }
            public WezelyDrzewaBinarnego(int ilosc_wezlow)
            {
                for (int i = 0; i < ilosc_wezlow; i++)
                {
                    base.Items.Add(default(WezelDrzewa<**BT**>));
                }
            }
            
        }

A co do pytania o tę zgodność w msdn - dlaczego msdn podaje, ze klasa Collection znajduje się w System.Collections.Generic, skoro ta klasa znajduje się w System.Collections.ObjectModel Jaja sobie robią czy jak?

edit: Dla jasności. Chciałbym utworzyć generyczne drzewo binarne.

0

Czytasz artykuł sprzed trzynastu lat, ostatnio aktualizowany jedenaście lat temu, i czepiasz się prostego błędu. Może w tamtych czasach ta klasa miała być w innym namespace niż ostatecznie się znalazła?

Zaś błąd mówi o tym, że klasa WezelDrzewa<BT> nie dziedziczy z Comparer<T>.

1 użytkowników online, w tym zalogowanych: 0, gości: 1