一、(int),Int32.Parse()和Convert.toInt32()三种方法的区别
1、(int)表示使用显式强制转换,是一种类型转换。当我们从int类型到long、float、double或decimal类型,可以使用隐式转换,但是当我们从long类型到int 类型转换就需要使用显式强制转换,否则会产生编译错误。
2、Int32.Parse()表示将数字的字符串转换为32 位有符号整数,属于内容转换,转换错误时会抛出多种异常。
3、Convert.ToInt32()则可以将多种类型(包括object 引用类型)的值转换为int 类型,因为它有许多重载版本。
区别所在:
第一个在对long类型或是浮点型到int 类型的显式强制转换中使用,但是如果被转换的数值大于Int32.MaxValue 或小于Int32.MinValue,那么则会得到一个错误的结果。
第二个在符合数字格式的string到int 类型转换过程中使用,并可以对错误的string数字格式的抛出相应的异常。
第三个则可以将多种类型的值转换为int类型,也可以对错误的数值抛出相应的异常。
摘自:在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别
二、string.Empty与""的区别
1、Empty的定义是:“public static readonly String Empty = "";”,因此Empty和""是等价的(在在Visual Studio2008下调试的结果也是如此)。
2、[待考证]判定为空字符串的几种写法,按照性能从高到低的顺序是:“s.Length == 0”优于“s == string.Empty”优于“s == ""”,见下图。