c#中的委托什么时候用到?它与事件有什么关系?请各位大虾指点迷津啊

解决方案 »

  1.   

    事件可以通过委托来定义,委托相当于函数的“指针”指向一个具体的函数。比如:
    public event EventHandler someEvent;
    EventHandler是一个委托,是专用于事件的委托,
    而someEvent则是一个事件。有着object sender, EventArgs e这样的标准参数。
      

  2.   

    object sender, EventArgs e 这两个参数不是很懂啊
      

  3.   

    参数object sender表示引发事件的对象(其实这里传递的是对象的引用,如button1...)
    参数System.EventArgs e 代表事件的相应信息,包含事件数据的类的基类,用于传递事件的细节。
      

  4.   

    你可以自己顶一个事件参数类,然后在另一个需要添加事件的类中定义事件,下面是一个手写的非常简单的例子事件参数类定义,有一个属性Data
    public Class YourEventArgs:EventArgs
    {
        private int _data;
        public YourEventArgs(int data)
        {
            _data=data;
        }    public int Data
        {
            get
            {
                return _data;
            }
        }
    }
    定义一个含有事件的类
    public class YourClass
    {
         public delegate void YourEventHandler(object sender,YourEventArgs e);     public event YourEventHandler OnYourEvent;     //某个会触发事件的方法
         private void xxx{
              ………………………………………………………………
              //到了该触发事件的时候
              int dd=5;  //这个5就是触发事件的时候传出去的值
              OnYourEvent(this,new YourEventArgs(5)
              ………………………………………………………………
         }}
    调用这个类
    YourClass yc=new YourClass();
    yc.OnYourEvent+=YourClass.YourEventHandler(yc_OnYourEvent);private void yc_OnYourEvent(object sender,YourEventArgs:EventArgs e)
    {
            MessageBox.Show(e.Data.ToString());
    }