作者optimist9266 (Optimist)
看板C_Sharp
标题Re: [问题] Parse和Convert的差别?
时间Sun Sep 4 22:47:07 2011
※ 引述《jung914 (谚)》之铭言:
: 如题~
: 刚刚我在实作一道题目想到的
: a = Convert.ToInt32(textBox1.Text);
: a = int.Parse(textBox1.Text);
: 我想请问以上这两行都是把textbox1里的文字转换成数字
: 可是既然会分两种写法就一定会有他的道理
: 我想知道这个差别在哪里?
: 希望有知道的人能替我解答 谢谢~
Int32.Parse(String) 是呼叫Number.ParseInt32方法,Convert.ToInt32(String)是呼叫
Int32.Parse(String)然後再呼叫Number.ParseInt32方法,两者基本上完全没有差别。
硬要说差别的话...Convert.ToInt32(String)如果你是丢null参照给它,他不会出现例外
状况,它会直接掷回0,另一者则会出现例外状况。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.41.104
1F:推 jung914:掷回0是重点 难怪我想说怎麽不会像另一个一样出现例外^^" 09/04 23:07
2F:→ andymai:也不算"硬要说"吧~因为这的确是很大的差别~用错丢出例外就 09/05 00:32
3F:→ andymai:算了~但没丢出还丢回0以为是正常的就很糟糕了... 09/05 00:32
4F:→ andymai:另外还有TryParse~应该依照不同的需求选择使用... 09/05 00:35
5F:→ cole945:那个0不是重点好吗=.=|| 那是因为你都拿string来看所以会 09/05 01:30
6F:→ cole945:所以会以为有没有exception还是0是梗. 09/05 01:31
7F:→ cole945:重点是parse是parser string, 但Convert是转IConvertible 09/05 01:31
8F:→ cole945:Convert不是针对String在转,看实作也可以throw exception 09/05 01:32
9F:推 hatasum:推楼上,能吃的东西差很多..... 09/06 00:11
10F:→ andymai:是没错~但我写了四、五年~记得没用过其它型态转数字说... 09/06 00:35
11F:→ andymai:单纯就string而言~这篇说的没错啊... 09/06 00:36
12F:→ andymai:anyway~虽然看的角度不一样~但能找到正确写法就好... 09/06 00:38
13F:→ kiki1503:大家怎麽都有办法看到到内建函式的实作啊?? 09/06 20:17
14F:推 horngsh:可以去下载.NET原始码或用Reflector来看。 09/07 18:27