很多初學者喜歡問,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