NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Funkce, kterou se snažíš použít je dostupná pouze pro registrované uživatele. Buďto se přihlas nebo si zdarma vytvoř nový účet.

Diskuze – Lekce 1 - Úvod do kolekcí a genericita

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Karel Vyborny:20.5.2024 9:29

Rozporoval bych úvodní tvrzení : Nevýhodou je, že sama kolekce skutečný datový typ prvků nezná a proto umí prvky navracet jen jako obecné objekty. Po získání prvku z kolekce si jej tedy musíme přetypovat.

C# navrátí prvek kolekci i bez toho :

ArrayList list = new ArrayList();
list.Add("položka");
Console.WriteLine(list[0]);
 
Odpovědět
20.5.2024 9:29
Avatar
Karel Vyborny:20.5.2024 12:22

naprosto nevhodný začátek , soustřeďuje se na pokročilé úvahy a úplně opomíjí smysl kolekcí, který bude začátečníky spíš zajímat

 
Odpovědět
20.5.2024 12:22
Avatar
Odpovídá na Karel Vyborny
Petr Štechmüller:20.5.2024 13:34

Ahoj, tady je to myšleno primárně při získávání prvků z kolekce. To co jsi ty napsal je v pořádku.

Zkus ale následující příklad:

ArrayList list = new ArrayList();
list.Add("polozka");

String polozka = list[0];
Console.WriteLine(polozka);

Tohle už nebude fungovat, protože list neví, že na indexu 0 je hodnota typu String.

Odpovědět
20.5.2024 13:34
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Odpovídá na Petr Štechmüller
Karel Vyborny:20.5.2024 17:11

rozumím, ale proč bych předpokládal, že by mělo jít o string, když budu mít obecné pole ? Můžu s prvkem pole pracovat jako s (obecným) objektem a když budu chtít string - mohu pretypovat bez problemu, ne ?

ArrayList list = new ArrayList();
list.Add("polozka");

object polozka = list[0];
string prevedenej = Convert.ToString(list[0]);
Console.WriteLine(polozka);
Console.WriteLine(prevedenej);
 
Odpovědět
20.5.2024 17:11
Avatar
Odpovídá na Karel Vyborny
Petr Štechmüller:20.5.2024 17:38

Volání Convert.ToString(list[0]) může docela nadělat paseku u "komplexnějších" objektů.

Řekněme, že budeš mít kolekci uživatelů, kde každý uživatel má třeba "jmeno" a "datum registrace".

Teď budeš chtít projít tuto kolekci a najít uživatele se jménem "franta".
Pokud nebudeš mít typováno, nedostaneš se k odpovídajícím vlastnostem a budeš nucen získanou hodnotu pokaždé přetypovat.

Další problém je, že netypová kolekce ti dovolí vkládat "uživatele" a třeba "auta" do jedné kolekce. No a když pak budeš chtít takovou kolekci procházet, budeš mít problém se zpracováním, protože by obsahovala různé datové typy.

Odpovědět
20.5.2024 17:38
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Jan Gritzbach:19.6.2024 9:50

Obsah v této lekci je dobře popsaný a přínosný, ale zařadil bych jej v kurzu kolekcí až někam později.

Pojmy vysvětlované v této lekci jsou velmi abstraktní a jdou hodně pod povrch toho, jak se s kolekcemi pracuje. Spíše popisují, co se děje uvnitř pod pokličkou. Časem je samozřejmě potřebné vědět, jak věci opravdu fungují, aby programátor dokázal vyhodnotit, kterou kolekci zvolit. Je však otázka, zda se jedná o vhodnou látku pro první lekci? Spíše si myslím, že většině začátečníku to zkraje kurzu zamotá hlavu, než by jim to pomohlo.

Místo toho bych v prvních lekcích prostě jen představil jednotlivé kolekce a začal probírat jejich praktické použití. Poté, třeba někam do poloviny kurzu, bych teprve zařadil toto pokročilé téma. Tam by už lidi mnohem spíše ocenili, že konečně mohou pochopit, proč je některá z kolekcí, které se doteď učili používat, pro jejich případ vhodnější než jiná.

Odpovědět
19.6.2024 9:50
"Stay curious, learn every day!"
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 26.