Parsování ULong (UInt64)   zodpovězená otázka

VB.NET

Nezdá se mi, že by .NET Framework mohl obsahovat tak kritickou chybu, ale jinak si neumím vysvětlit následující chování:

Dim left = ULong.MaxValue '(MaxValue je 18446744073709551615)
Dim value = "3021853513"
'Dojde k vyjímce OverflowException:
ULong.Parse(value, left)
'Nedojde k žádné vyjímce, parsování proběhne v pořádku:
Dim result = ULong.TryParse(value, left)

Neuvědomuji si nějaký fakt, nebo je to skutečně kritický bug? Když left nastavím na 0 místo na MaxValue, proběhne v pořádku i Parse.

(.NET Framework 3.5 Service Pack 1)

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

Hrůza, nevšiml jsem si, že u Parse je druhý parametr NumberStyles a ne ULong jako u TryParse. Tudíž OverflowException protože výčtový typ NumberStyles je Integer... Ta implicitní konverze se vážně někdy nevyplácí.

nahlásit spamnahlásit spam 3 / 3 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • 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