NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
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í.

Diskuze – Lekce 5 - Referenční a hodnotové datové typy

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
Miroslav Mazal:17.8.2018 15:39

Asi chápu, tu základní myšlenku, kterou jsi mi napsal. Ale úplně to asi pochopím, až to prakticky budu muset někde použít.

 
Odpovědět
+1
17.8.2018 15:39
Avatar
Rojo Violencia:5.1.2019 18:32

Web Itnetwork mi prijde az moc rozsahly, a tak jsem si pustil 4 a pul hodinove vyukove video o C# kde jsem se toho naucil opravdu hodne za pomerne maly cas (v anglictine).Nicmene ani jednou jsem nepouzil "public override string" a nejsem si presne jisty k cemu slouzi. Tak jsem si to tady cele precetl a nejak jsem nepobral ten potencial, v cem je ta vyhoda oproti tomuto reseni ?

 
Odpovědět
5.1.2019 18:32
Avatar
Odpovídá na Rojo Violencia
Neaktivní uživatel:5.1.2019 20:36

Většina metod, která potřebuje z jakéhokoliv důvodu získat řetězec, zpravidla používá <code>object.ToS­tring()</code> (teda pokud se nepletu, nijak podrobně jsem to neprocházel), kde <code>object</code> je samozřejmě hodnota, kterou metoda dostala v parametrech. Takže je jednodušší napsat jen <code>u</code>, a ne <code>u.jmeno</co­de>. A co kdybys chtěl místo jména použít (třeba) vzdělání? Bavilo by tě přepisovat skoro (ne úplně, tím se situace zhoršuje) každé <code>u.jmeno</co­de> na <code>u.vzdela­ni</code>? (nebo jméno a věk, to bývá běžnější)

Odpovědět
5.1.2019 20:36
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Rojo Violencia:5.1.2019 20:39

Uz jsem to pochopil :) Diky

 
Odpovědět
5.1.2019 20:39
Avatar
Libor Novák
Člen
Avatar
Libor Novák:21.6.2019 9:25

Tento článek ve mě vzbuzuje dojem, že jazyky Pascal a C/C++ jsou zastaralé a používání ukazatelů je přežitek. Rád bych zdůraznil, že jazyky C-sharp a Java vychází pravě z jazyka C/C++ a označují se za jazyky rodiny C či C like jazyky. Pokud budete umět C/C++ umíte 90% všech programovacích jazyků rodiny C a ještě rozumíte práci s ukazateli. To je obrovská výhoda. Jazyk C/C++ je stejně moderní jako C# nebo Java. Jen je to jazyk nižší úrovně, díky čemuž je ovšem mnohem mocnější a robustnější a umožňuje tak programovat velmi širokou škálu aplikací, které jsou navíc velmi rychlé a výkonně, protože kód v C/C++ je plně kompilován, nikoli částečně, jako v C# nebo v Javě. Možnost řízení práce s pamětí pomocí ukazatelů nám dává tu výhodu, že můžeme s pamětí pracovat velmi efektivně a tak může být aplikace velmi rychlá s nízkou režii. Nevýhoda jazyka C++ je v tom, že je oproti C# složitější na pochopení.
I když s ukazateli v C# nepracujeme přímo je dobré je znát. Mnozí programátoři, kteří ukazatele neznají, pak nechápou, co je to vlastně this a jak fungují reference na objekty a pak v programech vytváří velmi záludné chyby. Jazyky C/C++ stanovily principy programování, které převzaly i ostatní programovací jazyky. Jazyky Java a C# jsou na vyšší úrovni než C/C++ a jsou tedy vhodnější pro jiné typy aplikací než jazyk C/C++. To ale neznamená, že by byl jazyk C/C++ zastaralý a nemoderní. Je dokonce normován mezinárodní normou ANSII, což jazyky C# a Java nejsou.
Jazyk Pascal slouží pouze jako výukový jazyk, na kterém si začínající programátor osvojí principy a techniky programování. Pascal je jednodušší na pochopení než C a proto se používá při výuce programování například na Matfyzu nebo ČVUT. Z Pascalu se pak přechází většinou na C++ a Java či C# jsou volitelné jazyky. C# má o něco přívětivější syntaxi než C++ a proto pro program, který není náročný na výkon a poběží na nějaké platformě Microsoftu, je vhodnější použít C# než C++.

 
Odpovědět
+2
21.6.2019 9:25
Avatar
Odpovídá na Libor Novák
Nositelka Změny:4.1.2020 13:33

"Jazyk C/C++ je stejně moderní jako C# nebo Java. Jen je to jazyk nižší úrovně, ..."
Tohle je trochu podezřelá věta. Troufám si říci, že C(++) nejsou moderní, ale ani zastaralé, protože nabízí možnosti, které v C#/Java ani nejdou udělat. Navíc jejich vývoj nebyl přerušen, v roce 2018 byla vydána poslední norma pro C a letos se chystá nová norma pro C++.
Taky jsem někde četl, že C++ sice nemá GC, ale má něco lepšího a je i proto rychlejší než C#/Java. Je to sice článek starý 6 let, ale nemyslím si, že zrovna tohle bylo jinak (spíš to bude ještě lepší :-) )

Odpovědět
+2
4.1.2020 13:33
j.k.j
Avatar
Václav Pekárek:4.1.2020 13:46

Díky za článek :-)

Odpovědět
4.1.2020 13:46
Cogito ergo sum
Avatar
David
Člen
Avatar
David:9.4.2020 0:35

Díky za článek. ;-)

 
Odpovědět
9.4.2020 0:35
Avatar
Ondrej Chodura:18.4.2020 11:29

ahoj, nasel jsem tam chybku - "konstruktor a přetížený ToString(), abychom uživatele mohli jednoduše vypisovat."

  • jedna se o prekryvani metody, ne o pretizeni, to je uplne neco jineho.
 
Odpovědět
+2
18.4.2020 11:29
Avatar
E.K.
Člen
Avatar
E.K.:21.4.2020 14:42

Ahoj. Díky za tutoriál. Chtěl jsem si ověřit, jak se chová v tomto případě datový typ string. Pokud je tedy referenční, proč v následujícím kódu je výsledek poroměnných S1 a S2 rozdílný. Neměly by být oba stringy "dcba". Tady to vypadá tak, jakoby se nepřiřadila reference, ale celý obsah stringu. Díky.
static void Main(string[] args)
{
string S1, S2;

S1 = "ABCD";
S2 = "EFGH";
Console.Write­Line("S1 = {0}, S2 = {1}",S1,S2);
S2 = S1;
Console.Write­Line("S1 = {0}, S2 = {1}",S1,S2);
S1 = "dcba";
Console.Write­Line("S1 = {0}, S2 = {1}",S1,S2);
Console.ReadLine();
}

 
Odpovědět
21.4.2020 14:42
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 10 zpráv z 54.