黑马程序员技术交流社区

标题: int.tryparse和parse方法,请问区别是? [打印本页]

作者: ren1015    时间: 2012-6-14 10:47
标题: int.tryparse和parse方法,请问区别是?

今天学了winform视频教程,老师提到int.tryparse ,int还有parse方法,请问区别是?
作者: 吴治澎    时间: 2012-6-14 10:52
int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。  

如果字符串为空,则抛出ArgumentNullException异常;  

如果字符串内容不是数字,则抛出FormatException异常;  

如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;

nt.TryParse与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。   
作者: 朱灿    时间: 2012-6-14 11:01
Parse是不自己处理异常,而TryParse则是返回有无异常 ,返回值是bool转换成true   。
直接Parse成功返回Parse后的值,否则异常。
用TryParse是防止异常。
作者: 逝去的记忆ヽ    时间: 2012-6-14 11:16
看这段代码 你就知道了
01.using System;

02.using System.Collections.Generic;

03.using System.Linq;

04.using System.Text;

05.

06.namespace ConsoleApplication

07.{

08.    class Program

09.    {

10.        static void Main(string[] args)

11.        {

12.            Console.WriteLine(int.Parse("12"));//成功

13.            Console.WriteLine(int.Parse("12.5"));//失败

14.            Console.WriteLine(int.Parse("a"));//失败

15.            //int.Parse 如果转换失败会报错,所以再转换之前要确定能否转成int的字符串后再转

16.            int result = 1;

17.            int.TryParse("12", out result); //成功返回true,输出result等于12

18.            Console.WriteLine(result);

19.            int.TryParse("12.5", out result);//成功返回false,输出result等于0

20.            Console.WriteLine(result);

21.            int.TryParse("a", out result);//成功返回false,输出result等于0

22.            Console.WriteLine(result);

23.            //int.TryParse 如果转换失败也就是返回false会等于0,反之会转换成功

24.            

25.        }

26.    }

27.   

28.

29.}

作者: 平建    时间: 2012-6-14 11:45
简单来说int.Parse转换失败就会报错,抛出异常。而int.TryParse 转换失败或者返回值为fasle时就会等于0.
作者: 黑马龙超    时间: 2012-6-14 11:47
两个都是静态方法
int.tryparse(string s,out int result)两个参数,result为输出参数,用以保存转换后的值,返回值为bool值,true代表转换成功,false代表转换失败,失败不产生异常;
int.parse(string s)一个参数,有点类似于Convert.ToInt32(string s),s格式错误、引用为null或者超出int上下界都会抛出相应的异常;
建议用int.tryparse(string s,out int result)
作者: 赵鹏程    时间: 2012-6-14 12:04
tryParse里面内置了异常处理,出错则返回false,不出错则返回true,int.tryParse(string s,out int result)   result 保存转换后的值。int.Parse(string S)跟convert.toInt32(string s)作用差不多
作者: 黑马-许泽宇    时间: 2012-6-14 14:01
看字面意思大概也能猜到,一个是转换,一个是尝试转换嘛,转换成功或失败都会得到一个bool值
作者: 孙毅    时间: 2012-6-14 15:03
int.tryparse(string str,out int result) 使用这种方式转换,如果转换成功返回true,如果转换失败返回false,它不会出现异常,最后一个参数为输出值,如果传换成功,输入相应的值,如果转换失败输出0
int.parse()这种方法也是将数字内容转换为int,但如果转换失败时它会抛出异常
作者: ☆丿灬北纬28°    时间: 2012-6-14 21:08
用int.parse容易出现一些错误,比如字符串用int.parse("gjgh"),就会出先错误导致程序出错,用int.tryParse可以捕获这个错误,显示出来,程序可以正常
作者: 赵学辉    时间: 2012-6-15 17:01
这个在vs里就能看上啊!
你输入“int.parse”时智能提示你,他的返回值是int类型的!!
而你输入“int.Tryparse”可以看出他的返回值是bool类型的!!
例如:
string    source    =    "asd";   //在这输入一个不能转化的!
int    result    =    0;   
result    =    Int32.Parse(source);   
bool tof;
//tof=Int32.TryParse(source,    out    result);   一个一个看结果!!
console.writeline(result);
//console.writeline(tof);
再把source    的值赋上int型的数一个一个看,就知道了。
作者: 吴伟烈    时间: 2012-6-18 10:44
int.Parse()表示将数字内容的字符串转为int类型,如果有异常,会抛出异常让我们自己处理

int.TryParse()可以有两个参数,第一个是要转换的字段,第二个是一个返回参数
如果装换失败,返回参数的值为0,成功为装换后的数字
而int.TryParse()本身返回的是成功为true失败为false

例子:
int i = -1;
bool b = int.TryParse(null, out i);
执行完毕后,b等于false,i等于0,而不是等于-1,切记。
作者: 李玮    时间: 2012-6-18 11:06
首先,两个都是转换数据类型方法
int.tryparse(待转换,out 转换后返回的)  返回值:转换成功返回 true,转换失败返回 false,out 那里的返回值为0   ,不会抛异常,但可以用返回值判断转换是否成功
int.parse() 返回值:为转换成功后的数据,无法转换会抛异常。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2