A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ren1015 中级黑马   /  2012-6-14 10:47  /  3047 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


今天学了winform视频教程,老师提到int.tryparse ,int还有parse方法,请问区别是?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

12 个回复

倒序浏览
int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。  

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

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

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

nt.TryParse与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。   

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
宋天琪 + 1
ren1015 + 2 赞一个!

查看全部评分

回复 使用道具 举报
Parse是不自己处理异常,而TryParse则是返回有无异常 ,返回值是bool转换成true   。
直接Parse成功返回Parse后的值,否则异常。
用TryParse是防止异常。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
看这段代码 你就知道了
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.}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
简单来说int.Parse转换失败就会报错,抛出异常。而int.TryParse 转换失败或者返回值为fasle时就会等于0.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
两个都是静态方法
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)

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
tryParse里面内置了异常处理,出错则返回false,不出错则返回true,int.tryParse(string s,out int result)   result 保存转换后的值。int.Parse(string S)跟convert.toInt32(string s)作用差不多

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
宋天琪 + 1
ren1015 + 2 赞一个!

查看全部评分

回复 使用道具 举报
看字面意思大概也能猜到,一个是转换,一个是尝试转换嘛,转换成功或失败都会得到一个bool值

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
孙毅 中级黑马 2012-6-14 15:03:41
9#
int.tryparse(string str,out int result) 使用这种方式转换,如果转换成功返回true,如果转换失败返回false,它不会出现异常,最后一个参数为输出值,如果传换成功,输入相应的值,如果转换失败输出0
int.parse()这种方法也是将数字内容转换为int,但如果转换失败时它会抛出异常

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
用int.parse容易出现一些错误,比如字符串用int.parse("gjgh"),就会出先错误导致程序出错,用int.tryParse可以捕获这个错误,显示出来,程序可以正常

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
这个在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型的数一个一个看,就知道了。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
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,切记。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
首先,两个都是转换数据类型方法
int.tryparse(待转换,out 转换后返回的)  返回值:转换成功返回 true,转换失败返回 false,out 那里的返回值为0   ,不会抛异常,但可以用返回值判断转换是否成功
int.parse() 返回值:为转换成功后的数据,无法转换会抛异常。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马