Tôi có mã C# sau.CIL OpCode (Ldarg_0) được sử dụng mặc dù không có đối số
public void HelloWorld()
{
Add(2, 2);
}
public void Add(int a, int b)
{
//Do something
}
Nó tạo ra các CIL sau
.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
Bây giờ, những gì tôi không hiểu là dòng tại offset 0001:
ldarg.0
Tôi biết những gì Opcode là cho, nhưng tôi không thực sự hiểu tại sao nó được sử dụng trong th là phương pháp, vì không có đối số, phải không?
Có ai biết tại sao không? :)