Convert.ToInt32()与int.Parse()以及int.TryParse()方法异同

Convert.ToInt32()与int.Parse():

demo1:

string str="123";
int num1=Convert.ToInt32(str); //正确
int num2=int.Parse(str);       //正确
Console.WriteLine(num1);
Console.WriteLine(num2);
Console.ReadKey();

demo2:

string str="123abc";
int num1=Convert.ToInt32(str); <span style="color:#FF0000;"><strong>//会发生异常</strong></span>
int num2=int.Parse(str);      <strong> <span style="color:#FF0000;">//会发生异常</span></strong>
Console.WriteLine(num1);
Console.WriteLine(num2);
Console.ReadKey();

本质上,Convert.ToInt32()与int.Parse()是一样的。
通过反编译软件可知:Convert.ToInt32()方法内部实际上就是调用的方法int.Parse()。
所以int.Parse()的转换效率要高于Convert.ToInt32(),尽管这个效率差别微乎其微。

int.TryParse()

demo3:

string str="123";
int num3=0;
bool b=int.TryParse(str,out num3);//<strong>返回bool类型的值,转换成功</strong>
Console.WriteLine("转换结果:{0}",b);
Console.ReadKey();
结果:



demo4:

string str="123abc";
<strong>int num3=0;  //转换失败,返回0</strong>
bool b=int.TryParse(str,out num3);//<strong>返回bool类型的值,转换失败不会发生异常</strong>
Console.WriteLine("转换结果:{0}",b);
Console.ReadKey();
结果:


当我们使用int.TryParse()方法的时候,如果转换成功则返回true,并将转换后的结果赋给out后面的int参数里面,
如果转换失败则返回false,out后面的int参数值为0(不是因为:int num3=0,如下例)

demo5:

string str="123abc";
<strong>int num3=100;  //转换失败,依然返回0</strong>
bool b=int.TryParse(str,out num3);//<strong>返回bool类型的值,</strong><span style="color:#FF0000;"><strong>转换失败不会发生异常</strong></span>
Console.WriteLine("转换结果:{0}",b);
Console.ReadKey();
结果:



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值