class Program
{
static void Main(string[] args)
{
A a = new A();
a.m_Delegate += MethodA;
a.m_Delegate += MethodB;
a.m_Delegate();
a.m_Event += MethodA;
a.m_Event += MethodB;
a.InvokeEvent();
}
static void MethodA()
{
Console.WriteLine("MethodA");
}
static void MethodB()
{
Console.WriteLine("MethodB");
}
}
class A
{
public delegate void DelegateVoid();
public event DelegateVoid m_Event;
public DelegateVoid m_Delegate;
public void InvokeEvent()
{
m_Event();
}
}
从上面的main函数中可以看出,我们可以直接在类外调用委托a.m_Delegate(),而调用事件的时候我们是通过一个类中的方法调用的a.InvokeEvent();
如果直接调用a.m_Event()就会编译不过。从上面可以看出委托完全有事件的功能,有专家指出他们的最大区别吗?