定义一个事件之前我们先定义一个委托
---- delegate void DL();
---- event DL sj;
可见事件是委托的一个实例。
事件发生的时候是要有动作的,我们就可以把这个动作定义成为一个方法
我们就可以通过委托把事件和方法关联起来:
sj()+=Dl(方法名),这样我们就把一个方法关联到事件中去了。当事件被触发之后,方法也就随之运行了。这个方法随意,调用哪的都可以(访问级别许可),但是事件确实不同,当给事件关联方法时候,在哪都可以这样做,但是事件的调用却是在哪里定义,在哪里执行。
//事件在哪定义之前要先定义委托
//委托是公有的,方法可以封装任何一个类中和委托匹配的方法
//事件只能在定义的类中被调用。
------------------------------------------------
简单例子:
delegate void DL();
class Pro
{
static void Main()
{
aaa a1 = new aaa();
a1.aa();
}
public static void p_sj()
{
Console.WriteLine("我是 Pro里面的方法执行结果");
}
}
class ope
{
public event DL sj;
public void call()
{
sj();
}
}
class aaa
{
public void aa()
{
ope p = new ope();
p.sj += new DL(Pro.p_sj);
p.call();
}
}
-----------------------------------------------------
class progrom
{
delegate void DL();
event DL sj;
static void Main(string[] args)
{
progrom pp = new progrom();
pp.sj += new DL(Print);
pp.sj();
}
static void Print()
{
Console.WriteLine("P");
}
}