作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在 Windows Phone 应用程序中实现一个计时器。它在 Windows Phone 应用程序 (Silverlight) 中工作正常,但它在 Windows Phone 空白应用程序中不起作用。但它给了我以下错误-
Cannot implicitly convert type System.EventHandler to System.EventHandler<object>
这是我的代码-
namespace Timer
{
public partial class MainPage : Page
{
DispatcherTimer mytimer = new DispatcherTimer();
int currentcount = 0;
public MainPage()
{
InitializeComponent();
mytimer = new DispatcherTimer();
mytimer.Interval = new TimeSpan(0, 0, 0, 1, 0);
mytimer.Tick += new EventHandler(mytime_Tick);
//HERE error comes Cannot implicitly convert type System.EventHandler to System.EventHandler<object>
}
private void mytime_Tick(object sender,EventArgs e)
{
timedisplayBlock.Text = currentcount++.ToString();
}
private void startButton_Click(object sender, RoutedEventArgs e)
{
mytimer.Start();
}
}
}
但它甚至有所帮助。我该如何解决这个错误?
最佳答案
直接引用事件的方法处理程序将推断类型,满足泛型类型声明要求。
mytimer.Tick += mytime_Tick;
或者,显式声明通用类型并使用通用 EventHandler 构造函数,
mytimer.Tick += new EventHandler<object>(mytime_Tick);
会成功的。
此外,根据documentation ,您的处理程序签名错误。应该是:
private void mytime_Tick(object sender,object e)
{
timedisplayBlock.Text = currentcount++.ToString();
}
关于c# - 无法将类型 System.EventHandler 隐式转换为 System.EventHandler<object> 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28522523/
我是一名优秀的程序员,十分优秀!