今天了解了下委托的相关知识,但当看到事件委托的时候有个疑问:事件委托完全可以用普通的委托取代吗?
我自己写的例子如下:(代码不完整)
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Button b = new Button();            b.eventDelegate += new ButtonEventDel(Print);
            b.eventDelegate += new ButtonEventDel(Print1);            b.Name = "name";
        }
    }    public void Print(object o, EventArgs e)
    {
        Response.Write("事件委托实例成功@");
    }    public void Print1(object o, EventArgs e)
    {
        Response.Write("事件委托实例2的调用");
    }
}//写一个Button类
public delegate void ButtonEventDel(Object obj, EventArgs e);public class Button
{
    public String name;
    //声明一个委托
    public ButtonEventDel eventDelegate;    public String Name
    {
        set
        {
            name = value;            EventArgs e = new EventArgs();            if (eventDelegate != null)
            {
                eventDelegate(this, e);
            }
        }
    }
}
我没有用事件委托,感觉没什么区别呢

解决方案 »

  1.   

    事件是用委托来实现的,可以说EVENT是DELEGATE的一个具体应用。   
      委托是面向对象函数指针的一种形式,它允许通过对函数进行引用的方法来间接地调用该函数。  事件是Observe(观察者)设计模式的一种实现,以多播委托为底层支持,事件的声明只负责发布以及它的两个注册方法(Add_EventName,Remove_EventName)