代码改变世界

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

2008-11-13 15:22  shaofeng  阅读(534)  评论(2编辑  收藏  举报
Code

生成的IL部分代码

Code

 我们从IL代码我们看到

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

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

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

Code

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

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

希望能给大家些帮助