Diskuze: IEnumerable, ICollection, List
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Na tohle nenajdeš žádnou definitivní odpověd. Já osobně si myslím,
že nejlepší je z metod vracet to nejjednodušší rozhraní, co potřebuješ,
a nechat uživatele metody, ať si výsledek dosadí do jakýho typu chce. Ve
většině případů je tak nejlepší vracet IEnumerable<T>. Pokud bude
uživatel například dávad výsledky do foreach cyklu, tak mu na to stačí
jen to IEnumerable<T>, ale může to jednoduše převést i na
List<T>, pokud by bylo potřeba.
Pokud si ale píšeš nějakou metodu pro sebe a očekáváš vrácenej list,
pak není problém vracet přímo List<T>.
Souhlasím vesměs s Jakubem, že na tohle není definitivní, absolutně správná odpověď. Zajímavé rozdíly můžou nastat až to publikuješ pro někoho cizího.
Pak je rozdíl nezi IEnumerable a Listem podstatný. S IEnumerable dáváš jasně najevo, že si nepřeješ, aby se ti někdo šťoural ve vnitřku tvého objektu. Tedy pokud se nenajde "specialista", který si to převede na List.
IEnumerable se většinou používá jako návratový typ metod, které
vrací kolekci, třeba proto, že se dá použít yield return.
List se používá většinou na vlastnosti, ale na takové ty jednoduché, kde
to má být prostě kolekce, se kterou se dá nějak rozumně pracovat.
Zobrazeno 4 zpráv z 4.