使用Convert.Int32()和int32.Parse()时我有些困惑。 当我们使用Convert.Int32()或int32.Parse()...
时答案 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.Parse
,null
会抛出异常。此外,as Matthew Jones said,Int32.Parse
仅适用于字符串。
有关详细信息,请参阅this article
答案 3 :(得分:0)