Hádanka – co udělá tento kód?

Tomáš Herceg       1. 5. 2012       C#       5836 zobrazení

Dnešní hádanka je velmi jednoduchá – na následujícím kódu je něco špatně (je to velmi trapná chyba). Schválně si ale rozmyslete, co se stane, když jej spustíme? Doběhne někdy? Nebo vyhodí výjimku?

for (int i = DateTime.Today.Year; i >= DateTime.Today.Year - 100; i++)
{
YearDropDownList.Items.Add(
new ListItem(i.ToString(), i.ToString()));
}

 

hodnocení článku

1 bodů / 1 hlasů       Hodnotit mohou jen registrované uživatelé.

 

Nový příspěvek

 

Diskuse: Hádanka – co udělá tento kód?

Že by dle nastavení kompilátoru?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jj, (un)checked při kompilaci.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nejen to, záleží i na velikosti paměti - jestli dřív přeteče integer, nebo dojde paměť.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Diskuse: Hádanka – co udělá tento kód?

Protočí se až do int.MaxValue (2 147 483 647) a skončí. Teoreticky by ještě mohlo nastat OutOfMemoryException nebo něco podobného v případě, že by YearDropDownList tolik položek neustál.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.

Nyní zakládáte pod článkem nové diskusní vlákno.
Pokud chcete reagovat na jiný příspěvek, klikněte na tlačítko "Odpovědět" u některého diskusního příspěvku.

Nyní odpovídáte na příspěvek pod článkem. Nebo chcete raději založit nové vlákno?

 

  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback