C#中的委托和事件机制
谈到这个委托,很多熟悉C/C++的朋友, 都会想起函数指针,说起来真是有几分相同,但是还是有些区别的。下面是大家熟悉的一点资料:
委托: 方法的引用(方法的“地址”)[delegate/委托/代理/指代]
委托的作用: 能将方法的“地址”取出来, 然后可以传递
使用委托步骤
1、定义委托类型
 [访] delegate [返回值类型] 委托类型名(参数表);
 //约定 此 委托类型 的委托对象可以引用 指定 参数表
  // 指定返回值的方法。
2、定义委托对象 且实例化
 委托类型名 委托对象名 = new 委托类型名( 方法 );
 //真实的发生 委托对象 对 方法的引用。
3、调用委托
  委托名(参数);
委托的运用
1、回调
2、事件
事件: 特殊的委托对象、加了event的委托。
1、定义事件
  a、定义委托类型
  b、在事件源对象内部定义事件
   public event 委托类型名 事件名;
2、在调用控件的代码中 订阅事件 
  事件源对象.事件名 += new 委托类型名(事件处理方法);
3、在事件源对象内部 引发事件 (调委托)
  事件名(参数);
最后想弄2个例子给大家, 但是只在电脑上找到一个asp.net里面自定义事件的代码。给大家参考参考吧。 winform中也和这个完全一样。
    //1、定义事件  a、定义委托类型
    public delegate void SearchHander(object sender, SearchArgs e);
    //1、定义事件   b、在事件源对象内部定义事件
    public event SearchHander Search;
    //2、在调用控件的代码中 订阅事件 
    this.UcSearch1.Search += new SearchHander(UcSearch1_Search);
    if (Search != null)
    {
        SearchArgs arg = new SearchArgs();
        arg.KeyWord = this.TextBox1.Text;
        //3、在事件源对象内部 引发事件 (调委托)
        Search(this, arg);
    }