Согласно отражателю
L_0001: ссылка «это» вверху.
L_0002: ссылка на поле находится сверху после извлечения значения из стека.
L_0007: новый объект ConsoleApplication1.A находится наверху.
L_000c: выражение присваивания находится вверху после извлечения значения из стека.
(Итак, теперь у нас есть два выражения, назначаемых сверху, и ссылка на поле).
L_000d: доступная ссылка наверху.
L_000e: буквальное значение int вверху.
L_000f: вызов метода set_Property1 вверху после извлечения литерального значения для использования в качестве
аргумента и ссылки на переменную в качестве цели.
(теперь у нас есть вызов метода 3 выражений для set_Property1, назначение выражения, а затем ссылка на поле
).
L_0017: то же самое, что L_000f, заканчивающийся добавлением вызова метода в стек
(set_Property2, set_Property1, назначить, ссылка на поле).
L_001d: доступная ссылка
(ссылка на переменную, set_Property2, set_Property1 ...)
L_001e: метод push ожидает цель и один аргумент. Если я предполагаю, что эта строка работает так же, как и строка L_000f, то целью на вершине стека является set_Property2.
Я не понимаю, почему вы написали, что стек заканчивается полем и аргументом.