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有关联的啊?

解决方案 »

  1.   

    上面这段代码写在class publisher类里!
      

  2.   

    //声明委托
    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();
        }
    }
      

  3.   

    this是不是参数啊!是不是跟这个object sender有关联的啊恩,你理解的非常正确
      

  4.   

    this貌似就是自己是这个事件的使用者,我的看法。
      

  5.   

    this就是sender,e为事件参数。
      

  6.   

    PubComputerEventHandler handler = PubComputer;
    把事件PubComputer赋值给委托handler了
      

  7.   

    this 是你当前调用对象的实例,
    比如你上述所在的类为 A  如声明A a=new A(); 
    此时this是指的a这个对象;
    handler(this,e)是指将当前的实例a和e值 通过关联传给你
    刚才声明的PubComputerEventHandler委托