Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:
Funkce, kterou se snažíš použít je dostupná pouze pro registrované uživatele. Buďto se přihlas nebo si zdarma vytvoř nový účet.

Diskusia – 1. diel - Úvod do kolekcií a genericita

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá na Martin Patočka
Martin Riecky:4.9.2020 20:01

Ahoj. Ak som si dobre domyslieť, či by si potreboval spraviť, tak o 3 lekcie ďalej je popísaná kolekcia typu fronta, pripadne ešte zásobník.
Skús vytvoriť list spoločných predkov, či inštancie a pracovať s nimi.
Celkom som nepochopil to: "Každá má iné meno". Irituje to k tomu, že si si vytvoril 50 inštancií nejakých objektov do 50 premenných, čo by nebolo najšťastnejšie riešenie.

Avatar
Jan Zeman
Tvůrce
Avatar
Odpovedá na Neaktivní uživatel
Jan Zeman:1.10.2020 19:51

Ahoj, pokud by jsi chtěl vrátit počet prvků v listu, nemělo by get vracet spis arr.length?
Teď bude vlastnost Count vracet pořád jen šest ne?

Editované
Odpovedať
Čím více klidu, tím méně času.
Avatar
Odpovedá na Jan Zeman
Neaktivní uživatel:22.10.2020 19:17

Nn, ten list má jinou délku než pole. Pole může být dlouhé třeba 100, ale ten list bude mít navenek jenom 90. Když pak Add()neš další prvek, pole je pořád dlouhé 100, list 91, nicméně count musíš upravit explicitně. Kopírovat všechny prvky pokaždé do nového pole je zbytečně náročné.

Sorry jestli jsem naprosto mimo, nepročítal jsem si, o čem je tahle lekce, ani kód. Možná je to v kontextu lekce blbost. Možná tohle patří až k té další (soudě podle názvu).

Odpovedať
Neaktivní uživatelský účet
Avatar
Jan Zeman
Tvůrce
Avatar
Odpovedá na Neaktivní uživatel
Jan Zeman:27.10.2020 18:17

Jo, jasně, rozumím.Takze ten count se bude modifikovat až v metodě Add()
Trochu mi zmátlo, že tam není.

Odpovedať
Čím více klidu, tím méně času.
Avatar
AdamPavlin
Člen
Avatar
AdamPavlin:30.12.2021 6:28

Když jsem to testoval v .Net 6.0, tak to vypadá jako by ani nebylo nutné definovat tam na konci

where A : B where B : C.

Kdybych deklaroval v jmenným prostoru např.

Trida1, Trida2, Trida3

a pak v

Mainu

Napsal

Trida<Trida1, Trida2, Trida3> instancetridy = new Trida<Trida1 Trida2, Trida3>();

tak mi toto bude fungovat bez fatal erroru jen kdyz deklaruji dědičnost u deklarace

Trida1, Trida2

. takto:

Trida1: Trida2. a Trida2: Trida3.

A kdyz tohle udelam, tak mi funguje dědičnost mezi třídami i bez

where A : B where B : C

u

Trida

Kdybych deklaroval u tridy Trida nejaky datovy člen, např.

A datovyclen;

tak mi u neho funguje dědičnost do

B

a

C

(do

Trida2

a

Trida3

) i bez napsani

where A : B where B : C

u

Trida
Avatar
AdamPavlin
Člen
Avatar
AdamPavlin:30.12.2021 6:33

Když jsem to testoval v .Net 6.0, tak to vypadá jako by ani nebylo nutné definovat tam na konci

where A : B where B : C.

Kdybych deklaroval v jmenným prostoru např. Trida1, Trida2, Trida3

a pak v Mainu Napsal

Trida<Trida1, Trida2, Trida3> instancetridy = new Trida<Trida1 Trida2, Trida3>();

tak mi toto bude fungovat bez fatal erroru jen kdyz deklaruji dědičnost u deklarace Trida1, Trida2. takto:

Trida1: Trida2 a Trida2: Trida3

A kdyz tohle udelam, tak mi funguje dědičnost mezi třídami i bez

where A : B where B : C u Trida

Kdybych deklaroval u tridy Trida nejaky datovy člen, např. A datovyclen;
tak mi u neho funguje dědičnost do B a C (do Trida2 a Trida3) i bez napsani
where A : B where B : C u Trida.

Avatar
Radek Veverka
Tvůrce
Avatar
Odpovedá na AdamPavlin
Radek Veverka:31.12.2021 11:06

To je nesmysl a nemá to žádnou souvislost s .NET 6. Překladač počítá s tím, že generickým typem může být cokoliv, pokud není omezen pomocí where, a podle toho se chová. Rozhodně ti nebude dovoleno zevnitř třídy Trida přiřadit do proměnné typu B hodnotu typu A.

Avatar
Jan Krejčí
Člen
Avatar
Jan Krejčí:12.5.2023 2:46

Nepřišel jsem na to,jak funguje zmíněná třída Továrna. Jak ji využít ?

Avatar
Martin Suchý:20.11.2023 22:21

Zdravim, pardon, ale jednak nechápu k čemu je instanciování typu a jak ho pužít, proč to není v článku více rozvedeno, takhle z toho nevím nic. A dále nechápu řádek:
public class Trida<A, B, C> where A : B where B : C

Proč to není blíže vysvětleno?

Avatar
Dušan Kovářík:21.12.2023 14:45

Ocenil bych nějakou praktickou ukázku, na které by bylo vidět, k čemu jsou popisované konstrukce dobré, resp. k čemu se používají. Ale jako úvod je článek nejspíš OK - doufám, že se více souvislostí dozvím v dalších lekcích.

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 26.