public delegate void PubComputerEventHandler(object sender,PubEventArgs e);
public delegate void PubLifeEventHandler(object sender,PubEventArgs e);
public event PubComputerEventHandler PubComputer;
public event PubLifeEventHandler PubLife;
protected virtual void OnPubComputer(PubEventArgs e)
{
PubComputerEventHandler handler=PubComputer;
if(handler !=null)
{
handler(this,e);
Console.WriteLine();
}
}
问题:handler(this,e);这句中的this是什么意思啊?
this是不是参数啊!是不是跟这个object sender有关联的啊?
public delegate void PubLifeEventHandler(object sender,PubEventArgs e);
public event PubComputerEventHandler PubComputer;
public event PubLifeEventHandler PubLife;
protected virtual void OnPubComputer(PubEventArgs e)
{
PubComputerEventHandler handler=PubComputer;
if(handler !=null)
{
handler(this,e);
Console.WriteLine();
}
}
问题:handler(this,e);这句中的this是什么意思啊?
this是不是参数啊!是不是跟这个object sender有关联的啊?
public delegate void PubComputerEventHandler(object sender, PubEventArgs e);
//声明委托
public delegate void PubLifeEventHandler(object sender, PubEventArgs e);
//声明事件
public event PubComputerEventHandler PubComputer;
//声明事件
public event PubLifeEventHandler PubLife;
protected virtual void OnPubComputer(PubEventArgs e)
{
PubComputerEventHandler handler = PubComputer;//脱了裤子放屁的做法,弄个引用指向原本事件引用
if (handler != null)//判断是否注册过事件,注册过则不为空
{
//分别传递自己作为第一个参数,e形参做第二个参数调用事件,分别的调用每个注册了的事件响应函数
handler(this, e);
Console.WriteLine();
}
}
把事件PubComputer赋值给委托handler了
比如你上述所在的类为 A 如声明A a=new A();
此时this是指的a这个对象;
handler(this,e)是指将当前的实例a和e值 通过关联传给你
刚才声明的PubComputerEventHandler委托