[英]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
事件需要一个带有object
和EventArgs
参数的处理程序:
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.