01. november 2005 - 22:30Der er
14 kommentarer og 2 løsninger
Generics i .NET 2.0
Hej
Er der nogen der kan give en forklaring på hvorfor at der ikke er implementeret generics i collectionklasserne fra v. 1.1, men at det har fået sit eget namespace?
Det jeg har kunnet finde frem til er, at System.Collections.Generics.List svarer til ArrayList, men hvorfor have to klasser med samme funktionalitet - bortset fra generics?
Nu kommer jeg fra Java og da de fik generics blev det bare en del af de eksisterende collectionklasser.
Umiddelbart får jeg ikke rigtig nogen forklaring på det i dokumentationen andet end:
The List class is the generic equivalent of the ArrayList class.
Jeg er ret sikker på at det skyldes hensynet til bagudkompatibilitet.
Det gamle namespace er bevaret med de gamle collection klasser, så 1.1 kode umiddelbart kan compiles på en 2.0 platform. Hvis ArrayList pludselig var blevet generic, ville 1.1 koden ikke kunne kompileres fordi typeparameteren mangler i koden.
man kan lave nogle ting med C++ templates som man ikke kan med C# og Java generics
men der er også nogle ulemper: * man kan ikke compile template koden i en seperat fil, da de ikke er templaten men instantieringerne som giver kode * man kan hurtigt få meget kode genereret hvis man bruger en template for mange forskellige typer
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.