Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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í.
Avatar
zajda.elite
Člen
Avatar
zajda.elite:7.10.2012 19:22
List<Kontakt> adresar;

            ...

            Kontakt _kontakt = new Kontakt(jmeno, prijmeni, vek, tel);

            foreach (Kontakt x in adresar)// adresar mi kompilátor nebere,                                     //prý  nemá přiřazenou hodnotu
            {
                Console.WriteLine(x.ToString());
            }

Je možný použít tuhle strukturu

 
Odpovědět
7.10.2012 19:22
Avatar
matesax
Tvůrce
Avatar
Odpovídá na zajda.elite
matesax:7.10.2012 19:50

Je jasné, že jsi ji neinicializoval.. Inicializuj ji a bude to OK...

List<Kontakt> adresar = new List<Kontakt>();

A dosazuješ do ní hodnoty:

adresar.Add(new Kontakt(jmeno, prijmeni, vek, tel));

Ale lepší by bylo poslat celý kód - kdo ví, jestli je pro tvoji situaci vhodný List/pole/sez­nam/slovník...

Editováno 7.10.2012 19:53
 
Nahoru Odpovědět
7.10.2012 19:50
Avatar
matesax
Tvůrce
Avatar
Odpovídá na zajda.elite
matesax:7.10.2012 19:56

Jo a používej modifikátory:

private List<Kontakt> adresar = new List<Kontakt>();

Dále _kontakt toto není vhodné pojmenování - znak _ nepoužívej.

 
Nahoru Odpovědět
7.10.2012 19:56
Avatar
zajda.elite
Člen
Avatar
zajda.elite:7.10.2012 20:06

Dík, úplně mi vypadlo, že se inicializuje takhle!:o

 
Nahoru Odpovědět
7.10.2012 20:06
Avatar
matesax
Tvůrce
Avatar
Odpovídá na zajda.elite
matesax:7.10.2012 20:09

Ale jak píši, třeba pro tvoji situaci List vůbec není vhodný - raději bych viděl celý kód...

Je-li dlouhý:

https://gist.github.com/

 
Nahoru Odpovědět
7.10.2012 20:09
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.10.2012 20:21

Pokud je to seznam kontaktů, tak právě na to je List určen. Jakou jinou datovou strukturu bys chtěl použít? Slovník?

Editováno 7.10.2012 20:21
Nahoru Odpovědět
7.10.2012 20:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.10.2012 20:24

No seznam kontaktů - seznam?

 
Nahoru Odpovědět
7.10.2012 20:24
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.10.2012 20:28

Seznam se anglicky řekne list. List je tedy seznam.

Nahoru Odpovědět
7.10.2012 20:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.10.2012 20:33
new Kontakt[] { new Kontakt() };
new List<Kontakt>() { new Kontakt() };

Až na to, že to druhé je dynamické...

 
Nahoru Odpovědět
7.10.2012 20:33
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.10.2012 21:00

To první není seznam, ale pole. Je nutné tyto datové struktury rozlišovat, každá se hodí k jinému účelu. Seznam kontaktů je něco jiného než pole kontaktů.

Pro seznam existují 3 základní funkce: map(), filter() a reduce(). Tyto funkce nejsou pro pole definovány. Pokud použiješ pole tam, kde je vhodný seznam, musíš je do programu dolepovat.

Nahoru Odpovědět
7.10.2012 21:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.10.2012 21:05

Pole to je snad při určení rozměru - ne?

 
Nahoru Odpovědět
7.10.2012 21:05
Avatar
Kit
Tvůrce
Avatar
Kit:7.10.2012 21:25

Když si to řekneš nahlas, tak to musíš slyšet.

  • pole lidí nebo seznam lidí?
  • pole čísel nebo seznam čísel?
  • pole okurek nebo seznam okurek?
  • pole pixelů ve foťáku nebo seznam pixelů ve foťáku?

Rozdíl je v tom, že pokud údaj má své pevné místo určené indexem (např. pixely ve foťáku nebo okurky na poli), jedná se o pole. Když jednu okurku utrhnu, ostatní se neposunou na její místo, ale to místo zůstane prázdné. Když z telefonního seznamu vyhodím bývalou přítelkyni, tak tam po ní nezbude díra, ale následující se posunou o jedno místo nahoru. Je to seznam.

V seznamu se dá vyhledávat, dá se řadit podle abecedy, dá se spojit do věty. S polem to udělat nelze, protože v poli má každý prvek své pevné místo dané indexem.

Editováno 7.10.2012 21:27
Nahoru Odpovědět
7.10.2012 21:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 12 zpráv z 12.