中间代码(IL)是源程序的一种内部表示 举个例子C语言编译一个程序 那么C语言编
译器会把代码全部翻译为可以被机器识别的机器指令 同理C#编译器也是一样的 不
过它是被C#(CSC)编译为可以被CLR识别的指令 该指令称为中间代码。
C#可以内嵌汇编但需要通过Emit还有一种则通过Mono 但通常是Microsoft Emit.
IL Add:
static void Main(string[] args)
{
DynamicMethod add = new DynamicMethod("add", typeof(int), new Type[] { typeof(int), typeof(int) });
ILGenerator il = add.GetILGenerator();
il.Emit(OpCodes.Ldarg_0); // ldarg.0
il.Emit(OpCodes.Ldarg_1); // ldarg.1
il.Emit(OpCodes.Add); // add
il.Emit(OpCodes.Ret); // ret
int num = (int)add.Invoke(add, new object[] { 1, 2 });
}