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

C# .NET .NET (C# a Visual Basic) return List<> vrací prázdnou hodnotu American English version English version

Avatar
no.good
Člen
Avatar
no.good:

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
rwn
Člen
Avatar
rwn:

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:

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ý
Redaktor
Avatar
Odpovídá na no.good
Jan Vargovský:

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  +3 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.