NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!

Diskuze: return List<> vrací prázdnou hodnotu

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
no.good
Člen
Avatar
no.good:25.2.2014 20:33

Ahoj, mám udělanou v C# tuto třídu TestListu a metodu **vratSeznam, která by měla vracet **List<> seznam s položkami seznamu viz níže.

class TestListu
    {
        public List<string> vratSeznam()
        {
            List<string> seznam = new List<string>();

            seznam.Add("Daniel");
            seznam.Add("Monika");
            seznam.Add("Pepik");

            return seznam;
        }
    }

Nicméně, když danou třídu vytvořím, a pak zkusím vrátit List<> seznam, tak mi program vrátí prázdnou hodnotu.

TestListu vracenySeznam = new TestListu();

List<string> seznam = new List<string>();

seznam = vracenySeznam.vratSeznam();

Snažím se na to přijít čim to je a nevím. Díky za rady

 
Odpovědět
25.2.2014 20:33
Avatar
rawen
Člen
Avatar
rawen:25.2.2014 21:10

Mě to třeba jede co tu máš napsané. Není to spíš tím, že to špatně vracíš? Třeba tu první položku máš v Listu pod seznam[0] atd. Mimochodem, při každém dalším zavolání si předchozí List zahazuješ.

Nahoru Odpovědět
25.2.2014 21:10
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
no.good
Člen
Avatar
no.good:25.2.2014 21:17

Promiň jo spletl jsem se už mi to jede, tohle nahoře funguje správně :)

 
Nahoru Odpovědět
25.2.2014 21:17
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na no.good
Jan Vargovský:25.2.2014 21:23

Jen doplňím, že podle C# konvencí by se ta metoda měla jmenovat VratSeznam.

Jinak zápis jde udělat elegantněji:

class TestListu
    {
        public List<string> VratSeznam()
        {
            return new List<string>() { "Daniel", "Monika", "Pepik" };
        }
    }

A i samotné volání:

List<string> seznam = new TestListu().VratSeznam();

Je zbytečné držet v paměti instanci, která dělá jen tohle :)

 
Nahoru Odpovědět
25.2.2014 21:23
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 4 zpráv z 4.