一个很长的标题,但我希望它是具体的。标题确实是个问题。即使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));