尝试将一个方法添加到委托时,我不断收到错误“预期的方法名称”。我有一个代表,在我的游戏结束时被调用。我试图添加到委托的函数停止闪烁的倒计时(该方法在静态类中)。我搜索过,我仍然不确定为什么它不起作用。以下是导致错误的行:
LivesManager.gameEnded += new LivesManager.EndGame(CountdownManager.DisableFlashTimer(this));
this
将当前表单传递给方法,以便它可以禁用表单上的计时器闪存。
我之前已经将静态类中的方法添加到同一个委托中并且它工作正常,唯一的区别是我将表单作为参数传递然后它不喜欢它。
有没有办法将表单传递给方法而没有错误?
提前致谢:)
答案 0 :(得分:0)
您可以使用lambda表达式:
LivesManager.gameEnded += () => CountdownManager.DisableFlashTimer(this);
答案 1 :(得分:0)
我假设有一点,因为您没有包含gameEnded
或EndGame
的定义。我认为问题是CountdownManager.DisableFlashTimer(this)
不是方法名称,而是实际上是方法调用。编译器试图将此方法调用的最终返回值传递给LivesManager.EndGame
构造函数,而LivesManager.EndGame
很可能是(无参数无效?)委托。
也许你打算:
LivesManager.gameEnded +=
new LivesManager.EndGame(() => CountdownManager.DisableFlashTimer(this));
或者简单地说:
LivesManager.gameEnded += () => CountdownManager.DisableFlashTimer(this);