对于委托的理解 (轻喷)

这几天学到委托了,感觉 蛮头痛的, 脑袋有点不够用,几番周折,终于,对于委托似乎有了点理解 ,现总结如下 :

什么是委托?
 委托就是定义一个 对于方法的引用,类似于c++中的函数指针。

委托的格式?
 修饰符1 delegate  修饰符2  委托类型名(变量n);
 

 修饰符1 为定义的委托的范围修饰符,常用public;
 修饰符2为 返回值类型修饰符,如 :  void ,string ,char等;
 名字 为我们定义一个委托类型时所为它取得名字;

 对于 变量n  我们常常会有疑惑,委托是一个 方法吗?  为什么会有返回值 以及变量呢 ?
其实,委托并不是一个方法 ,而是一个 类型,它之所以有返回值以及变量是为了 保持 与其委托的方法 保持一致;

注意 : 委托是一个 类型  所以我们常常把它定义在一个 类的外面;
 还有 ,委托类型定义之后,我们还不能直接拿过来使用,还需要对它定义该类型的 委托变量;

格式 :
修饰符1 delegate  修饰符2  委托类型名(变量n);
委托类型名   委托变量;


使用时,还需要注意,我们在使用时要使用定义的委托变量,而不是定义的委托类型名,这类似于我们定义枚举型一样; 因为定义的委托变量是一个变量,所以 在使用之前我们还要对其进行赋值。

格式: 修饰符1 delegate  修饰符2  委托类型名(变量n);
           委托类型名   委托变量;
           委托变量=委托方法名;

注意: 这里的委托方法名就是你要委托的方法的名字,而且注意,不要加上了方法的参数以及括号,同时 ,这里委托的方法 还要与 该委托类型定义时所 定义的  返回值类型、参数列表类型以及参数个数  保持一致;  

ok,现在 定义好了 委托类型 ,该使用了 。  还记得委托是用来干嘛的吗 ?
没错 ,委托是用来将方法作为参数 传递进入其它方法的,
所以:
           我们要先定义一个 方法;
   范围修饰符  【static】 返回值类型修饰符    调用方法名( 变量n, 委托类型  委托变量)
{
      委托变量(变量n);
         .
         .
         .
    委托变量(变量 n);
}
 
上边的变量n就是你所委托的方法的参数;

开始使用了 :
1)   委托类型  委托变量; 
2)   委托变量=委托方法名;
3)   调用方法名(变量n,委托变量);
完整示例如下:

using System;

using System.Collections.Generic;
using System.Text;

namespace  委托示例
{
      public delegate  void del(string str);     //定义的委托类型
      calss  示例
      {
       static void send(string i)     //要委托的方法
       {
       console.WriteLine(i);
       }

       static  void sendup(string list,del  handler)  //调用方法
       {
         handler(list);
       }

       public  static  void  mian(string [] args)    //主方法
      {
           del  委托变量=send;   // 该句相当于:  del 委托变量; 委托变量=send;
           sendup("这是一个 委托的示例!!!",委托变量);
           console.ReadKey();
          }

       }

 
 
 
 
 
 
 
欢迎指正错误,共同学习,共同进步!!!!

转载于:https://www.cnblogs.com/Danlama/p/3596145.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值