国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

淺析Convert,Parse和TryParse

2019-11-11 04:59:50
字體:
來源:轉載
供稿:網友

最近老是看到Convert,Parse,但是忽然發現居然不知道它們的區別,所以決定好好研究下,下面是研究成果,有誤之處請指出。


static void Main(string[] args) { string str = null; int n = Convert.ToInt32(str); Console.WriteLine("n的值為:"+n); try { int m = int.Parse(str); Console.WriteLine("m的值為:"+m); } catch (Exception ex) { Console.WriteLine("出現異常"+ex); } int result; int.TryParse(str, out result); Console.WriteLine("result的結果為:" + result); Console.ReadKey(); }

上面的例子中,體現了它們之間的關系,請容我細細說來:

Convert可以將大部分的object轉成所需的類型。而Parse和TryParse貌似只能將string類型轉成int類型。

當string類型的實例為Null時,Convert返回值是0,Parse會出現異常,TryParse返回0。TryParse和Parse感覺它兩最大的區別就是TryParse加了異常保護。可以接收異常string。

當要轉換的是小數時,Convert會轉成偶數,即1.2換轉成2,2.6會轉成2。Parse會出現異常,顯示的強制轉換成較小的數,沒有四舍五入的概念。

int.TryParse返回的是bool,0表示轉換不成功:具體用法是

static void Main(string[] args) { string str1 = "5"; int n = int.Parse(str1); int result1; int.TryParse(str1, out result1); Console.WriteLine("result的值是:" + result1); //Console.ReadKey(); string str2 = "a"; //int m = Convert.ToInt32(str2); ////int p = int.Parse(str2); int result2; int.TryParse(str2,out result2); Console.WriteLine("result的值是:" + result2); }
當string為字符不是數字時,除了TryParse不出現異常,其他都出現異常。

Convert、Parse、TryParse、(int) 三個函數都是將值轉換成整數,但是四者之間各有異同,開發人員可以根據情況選用最合適的。以下解釋均經過高人驗證,希望對大家有所幫助。

1 (int)變量名[強制類型轉換]:

該轉換方式主要用于數字類型轉換,從int類型到long,float,double,decimal類型,可以使用隱式轉換,但是從long類型到int類型就需要使用顯式轉換,也就是該數據類型轉換方式,否則會產生編譯錯誤。 該方式對于浮點數會做無條件舍去,失去精確度 當然,該方式也可以進行object到int得轉換,但是,object的值要賦予int類型的值,否則會產生編譯錯誤,而且object為null時也會出錯。 最后切忌的一點,千萬不要用來處理char類型到int類型的轉換,否則傳回的的值是ASCII代碼,而并不是你想要的值。

2 int.Parse(string類型變量名)

該方式是將數字內容的字符串轉為int類型,如果字符串內容為空或者null時,則拋出ArgumentNullException異常;如果字符串內容不是數字,則拋出FormatException異常;如果字符串內容所表示數字超出int類型可表示的范圍,則拋出OverflowException異常。 使用該方法切忌的一點就是只能處理字符串內容,而且字符串內容只能在int類型可表示的范圍之內。

3 int.TryParse(string s, out int result)

該方式也是將數字內容的字符串轉為int類型,但是該方式比int.Parse優越的地方,就是它不會出現異常。如果轉換成功返回 true,如果轉換失敗返回 false。很明顯,最后一個參數為輸出值,如果轉換失敗,輸出值為 0;如果轉換成功,則輸出相應的值。

4 Convert.ToInt32

該方式不僅可以將字符串轉為int類型,還可以將其它類型的值轉成int類型。變量若為object或string類型,當其值為null時,會傳回0,不會造成程序錯誤,但是若此string類型的值為string.Empty,在轉型成int時,仍會造成程序錯誤。 該方式對于浮點數會做四舍五入。 該方式同強制轉換一樣,不能用來處理char類型,否則傳回的是ASCII代碼。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴海县| 麻江县| 连城县| 工布江达县| 庄浪县| 双流县| 新营市| 思茅市| 武汉市| 和静县| 肥城市| 蒲城县| 栾城县| 随州市| 紫阳县| 武穴市| 濉溪县| 丹巴县| 景谷| 五台县| 彰化县| 雷山县| 卢氏县| 承德市| 原阳县| 满城县| 余姚市| 巴林右旗| 和政县| 塔河县| 绩溪县| 邛崃市| 稻城县| 香格里拉县| 兴化市| 开鲁县| 阳山县| 合作市| 垣曲县| 茶陵县| 云龙县|