2

通常,当人们收到“'onTimer' 没有重载匹配委托 'ElapsedEventHandler'”错误时,这是​​由于在每次计时器结束时运行的 void 中不包含 ElapsedEventArgs 参数。此外,当我将代码复制并粘贴到解决方案之外的文件中时,错误似乎消失了,所以我很困惑。有谁知道更简单的方法来解决这个问题?

    static void setTimer()
    {
        yearIncreaser.Elapsed += onTimer;
        yearIncreaser.Enabled = true;
        yearIncreaser.AutoReset = true;
    }

    static void onTimer(Object source, ElapsedEventArgs e)
    {
        currentYear++;
    }

编辑:是的,调试屏幕产生的官方错误消息是:错误 CS0123:“onTimer”没有重载与委托“ElapsedEventHandler”匹配

EDIT2:解决方案正在改变 yearIncreaser.Elapsed += onTimer; 变成一个 lambda:yearIncreaser.Elapsed += (sender, args) => { }

4

1 回答 1

0

也许其他人会需要它。

我只是将对象更改为对象:

    static void setTimer()
    {
        yearIncreaser.Elapsed += onTimer;
        yearIncreaser.Enabled = true;
        yearIncreaser.AutoReset = true;
    }

    static void onTimer(object source, ElapsedEventArgs e)
    {
        currentYear++;
    }
于 2020-12-16T14:03:56.850 回答