Convert.ToInt16或32或64和Int.Parse有什么区别?

时间:2011-03-07 22:04:06

标签: c#

  

可能重复:
  Whats the main difference between int.Parse() and Convert.ToInt32

您好

我想知道它们之间有什么不同:

Convert.ToInt16 or Convert.ToInt32 or Convert.ToInt64

VS

Int.Parse

他们两个都在做同样的事情,所以只想知道不同之处?

3 个答案:

答案 0 :(得分:10)

Convert.ToInt对象转换为整数,如果值为null,则返回0.

int x = Convert.ToInt32("43"); // x = 43;
int x = Convert.ToInt32(null); // x = 0;
int x = Convert.ToInt32("abc"); // throws FormatException

Parse字符串转换为整数,如果该值无法转换则抛出异常

int x = int.Parse("43"); // x = 43;
int x = int.Parse(null); // x throws an ArgumentNullException
int x = int.Parse("abc"); // throws an FormatException

答案 1 :(得分:1)

如果输入字符串为null,

Convert.ToInt32将返回0。 Int32.Parse会抛出异常。

答案 2 :(得分:1)

  1. Convert.To(s)在参数为空时不会抛出异常,但Parse()会抛出异常。当参数为空时,Convert.To(s)返回0。

  2. Int.Parse()Int.TryParse()只能转换字符串。 Convert.To(s)可以使用任何实现IConvertible.Hence的类,Convert.To(s)可能是wee bit slower而不是Int.Parse(),因为它必须询问它的参数是什么类型。