【发布时间】:2010-07-13 04:05:12
【问题描述】:
Convert.ToInt32 或 Int.Parse 哪个更好,为什么?有什么特定条件可以使用这两个吗?
【问题讨论】:
-
Int32.TryParse(..) 最好 - 我认为这个问题更适合 codereview.stackexchange.com
标签: c#
Convert.ToInt32 或 Int.Parse 哪个更好,为什么?有什么特定条件可以使用这两个吗?
【问题讨论】:
标签: c#
大概你问的是Convert.ToInt32,它接受一个字符串。在这种情况下,它只是在内部调用 int.Parse,所以除了 Convert 通过返回 0 来优雅地处理 null 之外没有真正的区别。
【讨论】:
Convert.ToInt32 在内部调用 Int.Parse 并进行空检查。所以 Null 检查是额外的,在 Null 参数的情况下不会抛出。
你可以在这里参考这个问题:Any performance difference between int.Parse() and Convert.Toint()?
【讨论】:
其中一个调用另一个(虽然我不记得哪个是哪个 ATM),所以它们之间没有实际区别。
【讨论】:
来自Reflector:
public static int ToInt32(string value)
{
if (value == null)
{
return 0;
}
return int.Parse(value, CultureInfo.CurrentCulture);
}
所以调用 int.Parse() 会快一点。
【讨论】:
如果您不希望 null 永远作为参数传递,请使用 int.Parse,从那时起,当出现确实错误时,您将收到异常警报。 p>
【讨论】: