Длинное название, но я хотел, чтобы оно было конкретным.Название действительно вопрос.Несмотря на то, что метод, который вызывает InvokeMember
, имеет параметр out
и присваивает значение этому параметру, я не могу получить это значение.Вот код, который я изначально использовал:
string parameter = "";
int result = Convert.ToInt32(typeof(Ability).InvokeMember(selectedMove, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, new object[] { parameter }));
Я изменил его, теперь он работает так, как задумано, но я не знаю почему:
object[] args = new object[1]; //necessary to retrieve ref/out parameter
int result = Convert.ToInt32(typeof(Ability).InvokeMember(selectedMove, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, args));