Может кто-нибудь объяснить мне, что нужно загрузить в стек перед вызовом функции через Reflection.emit?
у меня очень простой способ
public static void Execute(string 1, string 2)
Я хочу динамически сгенерировать метод в следующем классе (забудьте об остальном, я разобрался с ними)
public class Test{
public string s1;
public void Run(string s2)
{
MyOtherClass.Execute(s2,s1)
}
}
У меня есть копия вышеуказанного теста для справки, и я заметил, что перед «вызовом» были сгенерированы следующие коды операций.
- ldarg_1
- ldarg_0
- лдфлд
Вопрос, что там делает ldarg_0? Мне нужно только 2 аргумента для вызова, почему CLR требует, чтобы ldarg_0 помещался в стек?