将string变为int 的几种方法方法比较

string source = "1412";
int result = 0;
re
// 使用Convert.ToInt32(string value);
result = Convert.ToInt32(source);
// 使用Int32.Parse(string value);
result = Int32.Parse(source);
// 使用Int32.TryParse(string s, out int result);
Int32.TryParse(source, out result);
三种方法的简单区别,可以延伸出很多内容,以及在判断的使用

如果解析失败,
Int32.Parse(source)总会抛出异常;
Convert.ToInt32(source)在source为null的情况下不会抛出异常而是简单的返回0给调用方;
Int32.TryParse(source, result)则无论如何都不抛出异常,只会返回true或false来说明解析是否成功,如果解析失败,调用方将会得到0值。

Int32.Parse()的异常
如果 string 为空,则抛出 ArgumentNullException 异常;
如果 string 格式不正确,则抛出 FormatException 异常;
如果 string 的值小于 MinValue 或大于 MaxValue 的数字,则抛出 OverflowException 异常。
当传递参数为非数字的string,Int32.TryParse不会抛出异常

int result = Int32.Parse(textBox1.Text.Trim());
int result = Int32.Parse(textBox1.Text, NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite);

double result = Double.Parse("1.412e2", NumberStyles.AllowDecimalPoint | NumberStyles.AllowExponent);
int result = Int32.Parse(" 1.412e3 ", NumberStyles.Float);

------参看阅读----

Allen Lee 如何把string解析为int?[C#]

jiangchongwei 在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别

你可能感兴趣的:(String)