У меня есть простой способ в C#, который получает доступ только для чтения поля:MSIL код для доступа только для чтения результатов на местах в ldarg.0
IL_0024: ldarg.0
IL_0025: ldfld string MyAssembly.MyClass.TestClass::A
Моего естественное предположения было то, что это используется для загрузки «это» ссылки при доступе к полям-членам, и этот вопрос также подтверждает, что: Why do I have to do ldarg.0 before calling a field in MSIL?
Однако в документации для ldarg упоминается, что он используется для загрузки параметров, переданных методу.
Какое правильное объяснение этому поведение? и как можно различать загрузку «этой» справки и загрузку первого формального параметра в метод в IL?