[英]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.