接触NET也有1年左右的时间了,NET的内部实现对我产生了很大的吸引力。个人觉得:能对这些底部的实现进行了解和熟练的话,对以后自己写代码是有很大帮助的,好了,废话不多说,请看下边:
.NET CLR 和 Java VM 都是堆叠式虚拟机器(Stack-Based VM),也就是 ,它 的指令集(Instruction Set)都是 用堆叠运算的方式:执行时的资料都是先放在堆叠中,再进行运算。JavaVM 有 200 指令(Instruction),每 指令都是 1 byte 的 opcode(操作码),后面接不等数目的参数;.NET CLR 有超 220 指令,但是有些指令使用相同的 opcode,所以 opcode 的数目比指令数略少。特 注意,.NET 的 opcode 度 不固定,大部分的 opcode 度是 1 byte,少部分是 2 byte。
下面是一 简单的 C# 原始码: