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


Zobrazeno 24 zpráv z 24.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


switch (promenna)
{
case 1: udelejNeco();
break;
case 2: udelejNecoJinyho();
goto case 1;
default: UdelejNecoJinyho();
break;
}
Musíš na konci každýho case něco, co způsobí, že ti běh programu nespadne do další větve - break, return, goto, throw.
Např. u case 2 se provede nejdřív větev pro 2 a pak větev pro 1.
Fuj, to je hnus. Už se nedivím, že potřebuješ breakpointy a krokování.
Ale no tak. Osobne jsem tu od tebe jeste zadnou ukazku zajimaveho kodu v C# nevidel, jen teoreticke reci o TDD. Muzu se te zeptat, jestli uz jsi vlastne nekdy delal na nejakem komercnim projektu? A ted nemyslim e-shop pro kamarada za sud piva, ale neco, na cem spolupracuji alespon tri lidi a vyvoj trva aspon par mesicu.
Dogmata jsou super, ale jen na univerzite.
Jaký hnus? Je to téměř ten samý kód, co je u switche i na MSDN...
Však právě. Goto bylo už v prvním produktu od Microsoftu a v jejich aplikacích smrdí dodnes.
rozhodně lepší řešení než když se v javě nedá break tak to propadává o větev níže...
Jak Java ví, že jsi ten break zapomněl? Nebo je to tak, že frajeři, co jsou příliš sexy na IDE, po kompilaci pročtou output a u každého warningu se mrknou, jestli zapomněli break, nebo to tak chtějí? Nojono.
Dobře, v C# neděláš (tím spíš mě zaráží, jak pěkně ho umíš kritizovat), tak teda v jiném jazyce jsi nějaký takový projekt, jak se ptám výše, dělal?
Na goto není vůbec nic špatného, špatné je, když ho někdo blbě používá. Nebo chceš říct, že assembler je špatný jazyk, protože se tam pořád jenom skáče?
Co ti tak vadí na goto?
Nadužívání sice znepřehledňuje kód (ale to když se použije prasácky dokáže jakákoliv konstrukce, třeba i spousty podmínek) a je to konstrukce, bez které se vždy obejdeš - cokoliv s goto se dá přepsat jinak, ale jsou situace, kdy goto dokáže kód urychlit/zpřehlednit.
Tento názor má třeba i pratvůrce tvého oblíbeného OS - Linus Torvalds.
Goto je velmi nebezpečné, může nastat např. tato situace: http://xkcd.com/292/
Normálně se warningy přece neobjevují, takže i ten jeden je při kompilaci velmi dobře vidět.
Goto jsem nikdy nepoužil. Stačí při programování přemýšlet trochu jinak a také ho nebudeš nikdy potřebovat.
V assembleru jiná možnost není, ale přesto se tam dají při skocích dodržovat určitá pravidla a udržet tak program na uzdě.
Chceš mi snad sdělit, že po kompilaci programu nepročítáš warningy a errory od kompilátoru? No nazdar.
Java pozná zapomenutý break ve switch podle toho, že za návěštím jsou příkazy, za kterými je místo break hned další návěští. Tento warning se dá selektivně vypnout, tedy pro konkrétní switch.
C# to AFAIK umí také.
Chceš mi snad sdělit, že po kompilaci programu nepročítáš warningy
a errory od kompilátoru?
To jsem nějak nikde nepsal - nebo jo?
Ale abychom to nezamluvili - můžeš mi prosím odpovědět na tu původní otázku, ohledně tvých dosavadních zkušeností?
... frajeři, co jsou příliš sexy na IDE, po kompilaci pročtou output a u každého warningu se mrknou, jestli zapomněli break, nebo to tak chtějí?
Z toho ti plyne, že já nečtu warningy? Přišlo mi jen zvláštní, že chceš mít v kódu něco, co vyhazuje warning, ale přitom to může být zamýšlená věc. Dál jsi napsal, že se ten warning dá vypnout, což mou zvědavost v tomto ohledu ukojilo.
Ještě tu ale máme jednu nezodpovězenou otázku, že...
Hmm. Jak jsi přišel na to, že chci v kódu něco, co vyhazuje warning? Ve větvích switche mám obvykle jen returny, takže zpravidla ani ten break nepotřebuji.
Dobře, máš pravdu, nech to plavat.
A teda ohledně těch zkušeností?
Často si jako komik připadám. S Matesaxem příbuzný nejsem a ani bych být nechtěl. Přesto jsem si na něj tady zvykl.
Zobrazeno 24 zpráv z 24.