";方法名称应为“”;尝试向委托添加处理程序方法时出错-C#
本文关键字:方法 添加 处理 -C# 出错 程序 quot | 更新日期: 2023-09-27 18:25:54
在尝试将方法添加到委托时,我不断收到错误"预期方法名称"。我有一个委托,每当我的游戏结束时,它就会被调用。我试图添加到委托中的函数阻止倒计时闪烁(该方法在静态类中)。我到处找了找,但我仍然不确定为什么它不起作用。这是导致错误的行:
LivesManager.gameEnded += new LivesManager.EndGame(CountdownManager.DisableFlashTimer(this));
this
将当前表单传递给方法,以便它可以禁用表单上的计时器闪烁。
我以前曾将静态类中的方法添加到同一个委托中,它运行良好,唯一的区别是我将表单作为参数传递,但它不喜欢它。
有没有任何方法可以在没有错误的情况下将表单传递给方法?
提前感谢:)
我假设了一点,因为您还没有包括gameEnded
或EndGame
的定义。我认为问题是CountdownManager.DisableFlashTimer(this)
不是一个方法名称,而是一个调用的方法。编译器试图将此方法调用的最终返回值传递给LivesManager.EndGame
构造函数,而LivesManager.EndGame
很可能是(void parameterless?)Delegate。
也许你打算:
LivesManager.gameEnded +=
new LivesManager.EndGame(() => CountdownManager.DisableFlashTimer(this));
或者简单地说:
LivesManager.gameEnded += () => CountdownManager.DisableFlashTimer(this);
您可以使用lambda表达式:
LivesManager.gameEnded += () => CountdownManager.DisableFlashTimer(this);