Avatar
zenik
Člen
Avatar
zenik:

Zdravim,

Vlastním učebnici moderni programování pro začátečníky a autor tam používa pro převedení řetězce na číslo metodu int cislo1 = Convert.ToInt32(po­leRetezec.Tex­t) když jsem zkusil zadat int cislo1 = int.Parse(pole­Retezec.Text) fungovalo mi to uplně stejně. A tak moje otázka zní. Jaký je mezi nima rozdíl jestli je vubec nějaký je ??

PS: autor pracuje ve VS 2005 tak jestli to není tím.

Díky za odpověď

 
Odpovědět 6.1.2014 16:39
Avatar
Odpovídá na zenik
Robert Zemánek (bobánek):

rozdíl v tom je určitě, nicméně Convert při nezdaru nezachytí výjimku, kdežto TryParse jo. to je podle mě největší rozdíl.

Nahoru Odpovědět 6.1.2014 16:47
Jsem jako holub.
Avatar
coells
Redaktor
Avatar
coells:

Pokud je text == null, pak Convert.ToInt32(tex­t) vrátí 0, zatímco int.Parse(text) vyhodí výjimku. Jinak jsou obě metody prakticky identické.

 
Nahoru Odpovědět  +3 6.1.2014 16:48
Avatar
zenik
Člen
Avatar
zenik:

Děkuju, a rozdíl mezi Convert.ToStrin­g(promenna); a promenna.ToStrin­g();

EDIT: aha tak jsem to našel je to stejne jako s int http://social.msdn.microsoft.com/…-vs-tostring?…

Editováno 7.1.2014 18:45
 
Nahoru Odpovědět 7.1.2014 18:42
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na zenik
Jan Vargovský:

U hodnotových typů se volá ToString(). U referenčních se ptá nato, jestli implementuje IConvertible nebo IFormattable a podle toho rozhoduje, jinak když je objekt null, tak vrátí "". Zatím co když bys zavolal ToString na neinicilizovaném objektu (null), tak ti vyskočí vyjímka, že chceš něco volat z ničeho jakoby.

 
Nahoru Odpovědět  +1 7.1.2014 18:49
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 5 zpráv z 5.