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.