今天了解了下委托的相关知识,但当看到事件委托的时候有个疑问:事件委托完全可以用普通的委托取代吗?
我自己写的例子如下:(代码不完整)
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);
}
}
}
}
我没有用事件委托,感觉没什么区别呢
我自己写的例子如下:(代码不完整)
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);
}
}
}
}
我没有用事件委托,感觉没什么区别呢
委托是面向对象函数指针的一种形式,它允许通过对函数进行引用的方法来间接地调用该函数。 事件是Observe(观察者)设计模式的一种实现,以多播委托为底层支持,事件的声明只负责发布以及它的两个注册方法(Add_EventName,Remove_EventName)