很多初学者喜欢问,VB.NETt跟C#有什么不同。这里不是要讨论这个问题,不过有一个不同点往往被人们忽略了,就是C#默认是unchecked的,VB.NET默认是checked的。从设计者的偏重可以看出,C#相对速度更快,VB.NET相对更见安全。
C#是怎么实现unchecked功能的?其实IL并有没有checked跟uncheked的命令,而是加、减、乘、跟、类型转换 的指令都有两套,对应overflow跟非overflow版本(注意没有除)
checked指令有:
add.ovf、sub.ovf 、mul.ovf、conv.ovf
unchecked指令有:
add、sub 、mul、conv
就是checked { } 模块下,都是用带.ovf的指令。默认模块即unchecked{ }模块下不使用带.vof的指令。
技术讨论的QQ群: 2514097 或 10987609