public sealed class Program{ public static void Main() { System.Console.WriteLine("Hi"); } } 程序运行时,CLR会加载并初始化它.CLR读取程序集的CLR头,查找标识了应用程序入口方法(Main)的MethodDefToken.然后,CLR会检索MethodDef元数据表,找到该方法的IL代码在文件中的偏移量,把这些IL代码JIT(just-in-time)编译成本地(native)代码.编译时
1.IL 基于栈——所有指令压入一个执行栈,并从栈弹出结果. 2.IL 指令无类型——指令会判断栈中操作数的类型,并执行恰当的操作. 3.IL 最大优势——应用程序的健壮性和安全性. 将 IL 编译成本地 CPU 指令时, CLR 会执行验证过程.这个过程检查 IL 代码,确认代码所做的一切都是安全的.例如,验证会核实调用的每个方法都有正确数量的参数,传给每个方法的每个参数都具有正确的类型,每个方法的返回值都得到了正确的使用,每个方法都有一个返回语句等.在托管模块的元数据中,包含了要由验证过程使