Convert.ToInt32与Int32.Parse区别及Int32.TryParse

 更新时间:2009年01月28日 14:09:01   作者:  
2个方法都可以把string转换为int,那么他们有什么区别?什么时候该用什么?性能如何。 其实在2.0里还有Int32.TryParse也实现了同样的效果。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string myString = "1234";
int myint = 0;
myint = Convert.ToInt32(myString);
Console.Write(myint+"\r\n ");
myint = Int32.Parse(myString);

Console.Write(myint+"\r\n ");
Int32.TryParse(myString, out myint);

Console.Write(myint+"\r\n");
}
}
}
表面上看,可见3个方法都实现了同样的效果!
那么我们把代码改一下:


//string myString = "1234";
string myString = null;
int myint = 0;
myint = Convert.ToInt32(myString);
Console.Write(myint+"\r\n");
myint = Int32.Parse(myString);
Console.Write(myint+"\r\n");
Int32.TryParse(myString, out myint);
Console.Write(myint+"\r\n");

运行结果:
Convert.ToInt32()在null时不抛异常而是返回0;
Int32.Parse()要抛异常;
Int32.TryParse()不抛异常,会返回true或false来说明解析是否成功,如果解析错误,调用方将会得到0值。

得出结论:
3个方法几乎没有差异!

如果要追求完美,那么可以参靠一下性能的差异:
Int32.TryParse()优于Int32.Parse()优于Convert.ToInt32()。

个人建议:.NET1.1下用Int32.Parse();.NET2.0用Int32.TryParse()。

为什么这样呢?
因为:Convert.ToInt32会把最终的解析工作代理给Int32.Parse,而Int32.Parse和Int32.TryParse则分别把解析工作直接代理给Number.ParseInt32和Number.TryParseInt32,前者在出现解析错误时会抛出异常,而后者则仅仅返回 false。

相关文章

  • .Net与JS时间日期格式的转换问题对比分析

    .Net与JS时间日期格式的转换问题对比分析

    这篇文章主要介绍了.Net与JS时间日期格式的转换问题,结合实例形式对比分析了JS与.Net针对时间日期格式的转换处理相关技巧,需要的朋友可以参考下
    2016-08-08
  • Asp.net 文本框全选的实现

    Asp.net 文本框全选的实现

    Asp.net 文本框全选的实现代码,需要的朋友可以参考下。
    2009-12-12
  • Asp.net中UpdatePanel的用法详解

    Asp.net中UpdatePanel的用法详解

    本文详细的介绍了Asp.net中UpdatePanel的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • .NET开发基础:从简单的例子理解泛型 分享

    .NET开发基础:从简单的例子理解泛型 分享

    .Net开发基础系列文章,对自己之前写过的代码备忘,如能给人予帮助,不甚荣幸。个人能力有限,如有差错或不足,请及时指正。
    2013-06-06
  • 如何利用FluentMigrator实现数据库迁移

    如何利用FluentMigrator实现数据库迁移

    这篇文章主要给大家介绍了关于如何利用FluentMigrator实现数据库迁移的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • ASP.NET Core奇淫技巧之动态WebApi的实现

    ASP.NET Core奇淫技巧之动态WebApi的实现

    这篇文章主要介绍了ASP.NET Core奇淫技巧之动态WebApi的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • ASP.NET母版页基础知识介绍

    ASP.NET母版页基础知识介绍

    这篇文章主要介绍了ASP.NET母版页基础知识,需要的朋友可以参考下
    2015-09-09
  • mvc上传到美橙云虚拟机系列问题的解决方法

    mvc上传到美橙云虚拟机系列问题的解决方法

    这篇文章主要为大家详细介绍了mvc上传到美橙云虚拟机系列问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • ASP.NET中Global和URLReWrite用法

    ASP.NET中Global和URLReWrite用法

    这篇文章主要介绍了ASP.NET中Global和URLReWrite用法,较为深入浅出的分析了Global.asax的功能及配置技巧,并实例分析了URLReWrite实现伪静态的方法,需要的朋友可以参考下
    2015-06-06
  • .NET 6开发TodoList应用实现结构搭建

    .NET 6开发TodoList应用实现结构搭建

    这篇文章主要介绍了.NET 6开发TodoList应用实现结构搭建,上一篇我们讲解了实现系列背景 ,今天继续来讲讲.NET 6开发TodoList并且实现结构搭建,更多详细内容刚兴趣得小伙伴可以来参考一下下面文章得具体内容
    2021-12-12

最新评论