次のC#コードがあります。CIL OpCode(Ldarg_0)は引数がなくても使用されます
public void HelloWorld()
{
Add(2, 2);
}
public void Add(int a, int b)
{
//Do something
}
それは、次のCIL
.method public hidebysig instance void HelloWorld() cil managed
{
// Code size 11 (0xb)
.maxstack 8
IL_0000: nop
IL_0001: ldarg.0
IL_0002: ldc.i4.2
IL_0003: ldc.i4.2
IL_0004: call instance void ConsoleApplication3.Program::Add(int32,
int32)
IL_0009: nop
IL_000a: ret
} // end of method Program::HelloWorld
は今、何を私は理解していないことでラインである0001をオフセット生成:
ldarg.0
私が何を知っていますそのオペコードが対象ですが、なぜそれがなぜ使用されているのかわかりません引数はないので、メソッドです、そうですか?
なぜ誰かが知っていますか? :)