1. event就是delegate的一种应用,加上event的delegate能做的事情,与单纯delegate都能做到。
2. 加了event的delegate变量就当是它给外面的世界只显示了两个东西:+=、-=。
外面的世界既不能对他赋值(=操作),也不能调用它(myDelegate())。
举个实例如下:
publikc class Test
{
public delegate void MyEventHandler(object sender, EventArg e);
public event MyEventHandler myEvent;
public MyEventHandler myDelegate;
public void F1(object sender, EventArg e){}
public void F2(object sender, EventArg e){}
}
public class App1
{
void Main()
{
Test t1 = new Test();
t1.myEvent += new MyEventHandler(t1.F1); //Correct
t1.myDelegate +=new MyEventHandler(t1.F1); //Correct
t1.myEvent(); //Wrong
t1.myDelegate(); //Correct
t1.myEvent = new MyEventHandler(t1.F1); //Wrong
t1.myDelegate = new MyEventHandler(t1.F1); //Correct
}
}