.NET中,对委托的理解。

以前很少接触委托,这两天做自定义控件,发现委托很有用,于是又复习了一遍委托,整理出来,以便以后复习。
其实在我的理解里,委托也是一个类,是一种特殊的数据类型。因为委托存储的是对方法的引用。这句话不知道大家能否理解,举个例子吧:比如我要出差需要做火车,但是我不知道有那几趟火车,于是我在出差申请表中填写“做火车(2人)”。看到这个申请表后,订票员就会定好火车票,而我不用关心细节问题。这就是一个简单的委托。我委托订票员定火车票,而我只要提出要求(2人)即可。
通过上面的例子,不知道大家是否有点概念。下面举个例子。
using System;

namespace delegeteTest
{          
        class delegeteClass
         {   
             public delegate void fHandler(int a);     //关键-此行可以看成类的声明
             public  fHandler f0;   //实例化一个委托,此时f0相当于一个方法
             public void d(int a,int b )
             {
                int c=a+b;
                f0(c);     //处理委托实例
             }
         }

        class test
        {
              public void output(int mun)
                {
                    System.Console .WriteLine ("{0}",mun);
                }
  
             [STAThread]
             static void Main(string[] args)
              {
                   test t=new test ();
                   delegeteClass dc=new delegeteClass ();//定义delegeteClass类的实例
                   dc.f0 =new  delegeteTest.delegeteClass.fHandler (t.output);//实例的初始化
                   dc.d(2,3);
              }
       }
}
通过上面的例子,可以发现public delegate void fHandler(int a);实际上相当于一个类。
当dc.f0 =new  delegeteTest.delegeteClass.fHandler (t.output);//进行初始化时,相当于f0方法执行t.output方法。
其中output方法的参数和返回值必须与fHandler相同。

 

转载于:https://www.cnblogs.com/ami/archive/2006/07/20/455339.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值