C#从System.EventHandler到System.EventHandler的动态模板隐式转换错误< TEventArgs> [英] C# Dynamic template implicit conversion error from System.EventHandler to System.EventHandler<TEventArgs>

查看:316
本文介绍了C#从System.EventHandler到System.EventHandler的动态模板隐式转换错误< TEventArgs>的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

代码:

    public void InstantiateIn(System.Web.UI.Control container)
    {
        PlaceHolder ph = new PlaceHolder();
        SectionArgs e = new SectionArgs();
        ph.DataBinding += new EventHandler<SectionArgs>(ItemTemplate_DataBinding);
        container.Controls.Add(ph);
    }

    static void ItemTemplate_DataBinding(object sender, SectionArgs e)
    {
        PlaceHolder ph = (PlaceHolder)sender;
    }

错误:
不能隐式转换类型'System.EventHandler< UserControlLibrary .Section.ItemTemplate.SectionArgs>'to'System.EventHandler'

Error: Cannot implicitly convert type 'System.EventHandler<UserControlLibrary.Section.ItemTemplate.SectionArgs>' to 'System.EventHandler'

推荐答案

正在接收错误,因为 PlaceHolder.DataBinding 是一个 EventHandler ,而不是 EventHandler< SectionArgs> ,但是您尝试使用错误类型的委托订阅。

The error is being received because PlaceHolder.DataBinding is an EventHandler, not an EventHandler<SectionArgs>, but you're trying to subscribe with the wrong type of delegate.

这应该是:

public void InstantiateIn(System.Web.UI.Control container) 
{ 
    PlaceHolder ph = new PlaceHolder(); 
    SectionArgs e = new SectionArgs(); 
    ph.DataBinding += new EventHandler(ItemTemplate_DataBinding); 
    container.Controls.Add(ph); 
} 

static void ItemTemplate_DataBinding(object sender, EventArgs e) 
{ 
    PlaceHolder ph = (PlaceHolder)sender; 
} 

以上内容将正常运行。

这篇关于C#从System.EventHandler到System.EventHandler的动态模板隐式转换错误&lt; TEventArgs&gt;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆