这是c#代码
class SimpleIL {
private int f = 2;
public void M1() { M2(f); }
public void M2(Object p) { Console.WriteLine(p); }
}
Run Code Online (Sandbox Code Playgroud)
这是M1方法的IL
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldarg.0
IL_0003: ldfld int32 ConsoleApplication1.SimpleIL::f
IL_0008: box [mscorlib]System.Int32
IL_000d: call instance void ConsoleApplication1.SimpleIL::M2(object)
IL_0012: nop
IL_0013: ret
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么两次ldarg.0?