原来Convert.ToInt32和(int)是有区别

时间:2023-01-03 23:27:12
原来Convert.ToInt32和(int)是有区别原来Convert.ToInt32和(int)是有区别Code

生成的IL部分代码

原来Convert.ToInt32和(int)是有区别原来Convert.ToInt32和(int)是有区别Code

 我们从IL代码我们看到

(int)18.8这个直接把值转换为了18

而Convert.ToInt32(18.8)(IL中的第8行)他在IL代码中却调用了Convert.ToInt32()函数(IL中的第6行)

然后我们通过Reflector工具看一下Convert.ToInt32()方法里为我们做了些什么

原来Convert.ToInt32和(int)是有区别原来Convert.ToInt32和(int)是有区别Code

 首先做了一个范围类型检查,假如超出范围就抛出OverflowException异常,

假如符合条件,进行四舍五入计算

希望能给大家些帮助