小编Ste*_*enS的帖子

IL代码,有人让我解释为什么ldarg.0出现两次?

这是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?

c# il

8
推荐指数
2
解决办法
521
查看次数

标签 统计

c# ×1

il ×1