如果一个类声明了一个事件,那么只能从该类触发事件。限制事件调用的原因是什么?
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication12
{
delegate void Function();
class EventHandling
{
public event Function fun;
public void AddEvents(Function events)
{
fun += events;
}
public void Notify()
{
fun();
}
}
class Program
{
static void Main(string[] args)
{
EventHandling aEvtHandler = new EventHandling();
Function aFun = new Function(Display);
aEvtHandler.AddEvents(aFun);
aEvtHandler.Notify();
}
static void Display()
{
Console.WriteLine("in the display");
Console.Read();
}
}
}
答案 0 :(得分:1)
从一个定义它的类中解雇一个事件才有意义。
如果我创建一个Bike类并且该类包含EngineStarted事件,那么该事件何时被引发?当发生某些事情使发动机启动时。因此,被触发的事件意味着类的实例(Bike对象)向外界报告引擎已启动。
没有意义的是,另一个物体会向全世界报告特定自行车的引擎启动,而没有自行车本身首先报告过。