【发布时间】:2009-09-30 20:19:06
【问题描述】:
我在使用 Convert.Int32() 和 int32.Parse() 时有些困惑。 当我们使用 Convert.Int32() 或 int32.Parse()...
【问题讨论】:
标签: .net
我在使用 Convert.Int32() 和 int32.Parse() 时有些困惑。 当我们使用 Convert.Int32() 或 int32.Parse()...
【问题讨论】:
标签: .net
Convert.ToInt32() 将尝试将任何内容(无论是 char、double、object 还是您拥有的内容)转换为 Int32。 Int32.Parse() 仅适用于字符串。
编辑:针对 OP 的评论,我引用了 from this thread:
基本上是 Convert 类使它 更容易在所有基础之间转换 类型。
Convert.ToInt32(String, IFormatProvider) 下面调用 Int32.解析。所以唯一的区别是 如果一个空字符串被传递给 转换它返回 0,而 Int32.Parse 抛出一个 ArgumentNullException。
这真的是一个选择的问题 无论您使用哪个。
【讨论】:
Convert.ToInt32('9') 将产生 57(ascii 值),而 Convert.ToInt32("9") 将产生 9。如果存在隐式转换,则将使用转换。
扩展马修的答案。
Convert.ToInt32 允许以可扩展的方式进行用户定义的转换。对于任何非预定义的转换(主要是原语),Convert 类将检查并查看该类型是否实现了 IConventible,如果是,则使用它来允许对象定义它自己到 Int32(和许多其他类型)的转换。
【讨论】:
Convert.ToInt32 会将null 转换为0; Int32.Parse 将在您传递 null 时抛出异常。此外,as Matthew Jones said、Int32.Parse 仅适用于字符串。
更多信息请见this article
【讨论】:
【讨论】: