可能重复:
Whats the main difference between int.Parse() and Convert.ToInt32
您好
我想知道它们之间有什么不同:
Convert.ToInt16 or Convert.ToInt32 or Convert.ToInt64
VS
Int.Parse
他们两个都在做同样的事情,所以只想知道不同之处?
答案 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)
Convert.ToInt32
将返回0。 Int32.Parse
会抛出异常。
答案 2 :(得分:1)
Convert.To(s)
在参数为空时不会抛出异常,但Parse()
会抛出异常。当参数为空时,Convert.To(s)
返回0。
Int.Parse()
和Int.TryParse()
只能转换字符串。 Convert.To(s)
可以使用任何实现IConvertible.Hence的类,Convert.To(s)
可能是wee bit slower而不是Int.Parse()
,因为它必须询问它的参数是什么类型。