Re: [問題] Parse和Convert的差別?

看板C_Sharp (C#)作者 (Optimist)時間14年前 (2011/09/04 22:47), 編輯推噓3(3011)
留言14則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《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

09/04 23:07, , 1F
擲回0是重點 難怪我想說怎麼不會像另一個一樣出現例外^^"
09/04 23:07, 1F

09/05 00:32, , 2F
也不算"硬要說"吧~因為這的確是很大的差別~用錯丟出例外就
09/05 00:32, 2F

09/05 00:32, , 3F
算了~但沒丟出還丟回0以為是正常的就很糟糕了...
09/05 00:32, 3F

09/05 00:35, , 4F
另外還有TryParse~應該依照不同的需求選擇使用...
09/05 00:35, 4F

09/05 01:30, , 5F
那個0不是重點好嗎=.=|| 那是因為你都拿string來看所以會
09/05 01:30, 5F

09/05 01:31, , 6F
所以會以為有沒有exception還是0是梗.
09/05 01:31, 6F

09/05 01:31, , 7F
重點是parse是parser string, 但Convert是轉IConvertible
09/05 01:31, 7F

09/05 01:32, , 8F
Convert不是針對String在轉,看實作也可以throw exception
09/05 01:32, 8F

09/06 00:11, , 9F
推樓上,能吃的東西差很多.....
09/06 00:11, 9F

09/06 00:35, , 10F
是沒錯~但我寫了四、五年~記得沒用過其它型態轉數字說...
09/06 00:35, 10F

09/06 00:36, , 11F
單純就string而言~這篇說的沒錯啊...
09/06 00:36, 11F

09/06 00:38, , 12F
anyway~雖然看的角度不一樣~但能找到正確寫法就好...
09/06 00:38, 12F

09/06 20:17, , 13F
大家怎麼都有辦法看到到內建函式的實作啊??
09/06 20:17, 13F

09/07 18:27, , 14F
可以去下載.NET原始碼或用Reflector來看。
09/07 18:27, 14F
文章代碼(AID): #1EOuzjgb (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1EOuzjgb (C_Sharp)