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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

淺析Convert,Parse和TryParse

2019-11-11 05:34:39
字體:
供稿:網(wǎng)友

最近老是看到Convert,Parse,但是忽然發(fā)現(xiàn)居然不知道它們的區(qū)別,所以決定好好研究下,下面是研究成果,有誤之處請(qǐng)指出。


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("出現(xiàn)異常"+ex); } int result; int.TryParse(str, out result); Console.WriteLine("result的結(jié)果為:" + result); Console.ReadKey(); }

上面的例子中,體現(xiàn)了它們之間的關(guān)系,請(qǐng)容我細(xì)細(xì)說來:

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

當(dāng)string類型的實(shí)例為Null時(shí),Convert返回值是0,Parse會(huì)出現(xiàn)異常,TryParse返回0。TryParse和Parse感覺它兩最大的區(qū)別就是TryParse加了異常保護(hù)。可以接收異常string。

當(dāng)要轉(zhuǎn)換的是小數(shù)時(shí),Convert會(huì)轉(zhuǎn)成偶數(shù),即1.2換轉(zhuǎn)成2,2.6會(huì)轉(zhuǎn)成2。Parse會(huì)出現(xiàn)異常,顯示的強(qiáng)制轉(zhuǎn)換成較小的數(shù),沒有四舍五入的概念。

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

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); }
當(dāng)string為字符不是數(shù)字時(shí),除了TryParse不出現(xiàn)異常,其他都出現(xiàn)異常。

Convert、Parse、TryParse、(int) 三個(gè)函數(shù)都是將值轉(zhuǎn)換成整數(shù),但是四者之間各有異同,開發(fā)人員可以根據(jù)情況選用最合適的。以下解釋均經(jīng)過高人驗(yàn)證,希望對(duì)大家有所幫助。

1 (int)變量名[強(qiáng)制類型轉(zhuǎn)換]:

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

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

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

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

該方式也是將數(shù)字內(nèi)容的字符串轉(zhuǎn)為int類型,但是該方式比int.Parse優(yōu)越的地方,就是它不會(huì)出現(xiàn)異常。如果轉(zhuǎn)換成功返回 true,如果轉(zhuǎn)換失敗返回 false。很明顯,最后一個(gè)參數(shù)為輸出值,如果轉(zhuǎn)換失敗,輸出值為 0;如果轉(zhuǎn)換成功,則輸出相應(yīng)的值。

4 Convert.ToInt32

該方式不僅可以將字符串轉(zhuǎn)為int類型,還可以將其它類型的值轉(zhuǎn)成int類型。變量若為object或string類型,當(dāng)其值為null時(shí),會(huì)傳回0,不會(huì)造成程序錯(cuò)誤,但是若此string類型的值為string.Empty,在轉(zhuǎn)型成int時(shí),仍會(huì)造成程序錯(cuò)誤。 該方式對(duì)于浮點(diǎn)數(shù)會(huì)做四舍五入。 該方式同強(qiáng)制轉(zhuǎn)換一樣,不能用來處理char類型,否則傳回的是ASCII代碼。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 泸定县| 青神县| 图木舒克市| 邵阳县| 雷波县| 威信县| 灯塔市| 霞浦县| 二手房| 安岳县| 阿克陶县| 财经| 句容市| 阿拉善盟| 吉安县| 手游| 维西| 无棣县| 宣化县| 斗六市| 社会| 浏阳市| 西青区| 泌阳县| 濉溪县| 城口县| 安陆市| 普洱| 渭源县| 南和县| 福泉市| 乌拉特后旗| 西安市| 宽城| 许昌市| 明光市| 康乐县| 任丘市| 成安县| 灵丘县| 宣城市|