我的Invoke()
抛出了一个TargetException,我遇到了问题。
public Controller(SystemUI ui, System system)
{
UI = ui;
System = system;
UI.CommandEntered += ParseCommand;
Commands = new Dictionary<string, Delegate>();
Commands.Add(":q", new Action(UI.Close));
}
然后我调用Commands[input[0]].Method.Invoke(this, input.ToArray<object>());
,但它会抛出一个带有消息
对象与目标类型不匹配。
我需要演员吗? 我很失落,我很感激任何帮助!
答案 0 :(得分:1)
根据上面的注释,您正在尝试调用Action(UI.Close),但是您将一个对象数组作为参数传递给此操作,该操作没有参数,因此会产生此异常。
更改...
input.toArray<object>()
为...
new object[0], or new object[] {} // or perhaps even just null may do the trick.