Convert.Int32()和Int32.Parse()之间有什么区别?

时间:2009-09-30 20:19:07

标签: .net

使用Convert.Int32()和int32.Parse()时我有些困惑。 当我们使用Convert.Int32()或int32.Parse()...

4 个答案:

答案 0 :(得分:13)

Convert.ToInt32()将尝试将任何东西 - 无论是char,double,object,还有什么 - 转换为Int32。 Int32.Parse()仅适用于字符串。

编辑:在回应OP的评论时,我引用了from this thread

  

基本上Convert类就可以了   更容易在所有基地之间转换   类型。

     

Convert.ToInt32(String,   IFormatProvider)下面调用   Int32.Parse。所以唯一的区别是   如果传递空字符串   转换它返回0,而   Int32.Parse抛出一个   ArgumentNullException。

     

这真的是一个选择问题   无论你使用哪个。

答案 1 :(得分:4)

扩展马修的答案。

Convert.ToInt32允许以可扩展的方式进行用户定义的转换。对于任何非预定义的转换(主要是基元),Convert类将检查并查看该类型是否实现IConventible,如果是,则使用它来允许对象定义它自己的转换为Int32(以及许多其他类型)。

答案 2 :(得分:2)

Convert.ToInt32会将null转换为0;如果您传递Int32.Parsenull会抛出异常。此外,as Matthew Jones saidInt32.Parse仅适用于字符串。

有关详细信息,请参阅this article

答案 3 :(得分:0)

根据MSDN Parse()用于字符串到int,其中Convert对于转换更加通用。

Int32.Parse()

Convert.Int32()应该是您的主要选择