繁体   English   中英

从另一个方法调用一个方法

[英]Call a method from another method

我有以下代码:

        public void StartTimer()
        {
            var timer = new DispatcherTimer();
            timer.Tick += Something;
            timer.Interval = new TimeSpan(0, 0, 0, 3);
            timer.Start();

        }

        private async void Something()
        {      
         //code goes here....
        }

问题是我收到此错误:

'Something'没有重载匹配代表'System.EventHandler'

我的问题可能是基本的:为什么会出现此错误以及如何解决此问题...

Tick属性的类型为EventHandler

EventHandler的签名是:

public delegate void EventHandler(
    Object sender,
    EventArgs e
)

这意味着您的Something方法必须与此签名匹配。 更改为:

public void Something(Object sender, EventArgs e) { ... }

另外,如果您不能更改该方法的签名,则可以创建一个新的委托来调用您的方法。

timer.Tick += (s, e) => Something();

DispatcherTimer.Tick事件需要一个带有objectEventArgs参数的处理程序:

private void Something(object o, EventArgs e)
{
    // implementation
}

Something的签名与该特定事件不匹配。 查看该事件的文档以了解如何完成。

尝试这个

        public void StartTimer()
        {
            var timer = new DispatcherTimer();
            timer.Tick += Something;
            timer.Interval = new TimeSpan(0, 0, 0, 3);
            timer.Start();

        }

        private async void Something(Object sender, EventArgs e)
        {      
         //code goes here....
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM