完全重复:.Net Parse versus Convert 有谁可以帮助我?
答案 0 :(得分:5)
Convert.ToInt32(string)
和Int32.Parse(string)
会产生相同的结果。
在这种情况下,Int32.Parse(null)
会引发ArgumentNullException
但是,Convert.ToInt32(null)
返回零。
因此最好使用Int32.Parse(string)
答案 1 :(得分:1)
答案 2 :(得分:1)
Int.Parse()尝试解析也可以接受格式
Int.Parse(String, NumberStyles)
你也可以指定参数,解析只会返回true或false来显示解析是否成功
答案 3 :(得分:1)
如果你需要转换一个int,你有3个选项。
int.Parse
Convert.ToInt32
int.TryParse
三者中最好的解决方案通常是int.TryParse。这三者之间的区别在于速度和可靠性。
如果除int之外的任何值,int.Parse将抛出异常 进入它。一般的经验法则是异常是缓慢的。
Convert.ToInt32将处理一个null并返回0,但它会抛出 其他输入的例外情况。再一次,例外情况很慢。
int.TryParse将处理几乎所有输入。它将返回true或
false取决于传递的参数是否已转换。如果
结果为false,转换后的int为0.如果结果为true,则为
int已转换,您有一个转换后的int。
我不会将int.Parse用于任何事情。如果我确定我的输入是正确的并且我有某种形式验证,我会使用Convert.ToInt32来保存自己输入额外的行。在所有其他情况下,我会使用int.TryParse
每个语法:
int result;
boolean success;
result = int.Parse(null) = Exception
result = Convert.ToInt32(null) = 0
success = int.TryParse(null, out result) = False/0
result = int.Parse("asd") = Exception
result = Convert.ToInt32("asd") = Exception
success = int.TryParse("asd", out result) = False/0