c# - 无法将类型 System.EventHandler 隐式转换为 System.EventHandler<object> 错误

标签 c# visual-studio windows-phone-7 windows-phone-8

我正在尝试在 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/

相关文章:

C#/Visual Studio 调试示例

c# - 如何非异步下载数据?

c# - 只读文本框的服务器验证 - 防止输入值

c# - 无法将 mscorlib.dll 添加到 Visual Studio 项目

c++ - VC++ 中是否有 boost::shared_ptr 的本地/可靠替代方案?

c# - 多线程windows phone应用程序

security - 挂载WP7 VHD文件

c# - javascript警报不起作用

c# - Bower 在 Visual Studio 2015 预览版中不工作

sql - 将日期参数添加到报告 TSQL