我正在尝试在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();
        }
    }
}

我尝试了Cannot implicitly convert type 'System.EventHandler' to 'System.EventHandler<object>' for storyboard complete

但这甚至有所帮助。我该如何解决此错误?

最佳答案

直接引用事件的方法处理程序将推断类型,从而满足通用类型声明要求。

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/

10-11 01:05