看板 C_Sharp 關於我們 聯絡資訊
※ 引述《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
jung914:擲回0是重點 難怪我想說怎麼不會像另一個一樣出現例外^^" 09/04 23:07
andymai:也不算"硬要說"吧~因為這的確是很大的差別~用錯丟出例外就 09/05 00:32
andymai:算了~但沒丟出還丟回0以為是正常的就很糟糕了... 09/05 00:32
andymai:另外還有TryParse~應該依照不同的需求選擇使用... 09/05 00:35
cole945:那個0不是重點好嗎=.=|| 那是因為你都拿string來看所以會 09/05 01:30
cole945:所以會以為有沒有exception還是0是梗. 09/05 01:31
cole945:重點是parse是parser string, 但Convert是轉IConvertible 09/05 01:31
cole945:Convert不是針對String在轉,看實作也可以throw exception 09/05 01:32
hatasum:推樓上,能吃的東西差很多..... 09/06 00:11
andymai:是沒錯~但我寫了四、五年~記得沒用過其它型態轉數字說... 09/06 00:35
andymai:單純就string而言~這篇說的沒錯啊... 09/06 00:36
andymai:anyway~雖然看的角度不一樣~但能找到正確寫法就好... 09/06 00:38
kiki1503:大家怎麼都有辦法看到到內建函式的實作啊?? 09/06 20:17
horngsh:可以去下載.NET原始碼或用Reflector來看。 09/07 18:27