类型转换——convert、parse和try parse

数据string类型转换int的三种方式:

1、parse

格式:int m = int.Parse(str);

int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。  

· 如果字符串为空,则抛出ArgumentNullException异常;  

· 如果字符串内容不是数字,则抛出FormatException异常;  

· 如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;

2、convert

格式:int n = Convert.ToInt32(str);

对 int.Parse一个改进,因为它判断了值等于null的情况

· 当我们不小心传入了123abc这个字符串,这个程序就会抛出异常为 System.FormatException:,是字符串的格式异常,这就需要去拦截异常影响了系统性能。

· 以parse为基础  进行了改进,Convert.ToInt32 参数为 null 时,返回 0

· 但当Convert.ToInt32参数为string.empty是,就会抛出System.FormatException: 输入字符串的格式不正确异常。

3、try parse

格式:bool b = int.TryParse("123", out num3);

int.TryParse 可以看作是对int.Parse和Convert.toInt32的改进。

它既判断了值等于null的情况,还判断了string.empty 这样空字符的情况。

· 所以它不会产生异常,转换成功返回 true,转换失败返回 false。  

· 最后一个参数为输出值,如果转换失败,输出值为 0,如果转换成功,输出值为转换后的int值、

四.int.Parse,Convert.ToInt和int.TryParse的比较

1.参数和适用对象不同

int.Parse的参数数据类型只能是string类型,适用对象为string类型的数据

convert.toInt参数比较多

int.TryParse的参数只能是string类型,适用对象为string类型的数据

2.异常情况不同

异常主要是针对数据为null或者为""的情况

Convert.ToInt32 参数为 null 时,返回 0;Convert.ToInt32 参数为 "" 时,抛出异常;

int.Parse 参数为 null 时,抛出异常。; int.Parse 参数为 "" 时,抛出异常。

int.TryParse

3.返回值不同

int.TryParse与int.Parse和Convert.ToInt 在返回值的不同是返回bool类型。获取转换后的值是通过out result这个参数获取的。

Guess you like

Origin blog.csdn.net/yangsimo/article/details/120399760