委托

委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值。

 实现步骤:1. 申明委托, 2.定义监听着和调用的函数, 3.定义被监听者(绑定委托)和具体实现的函数(被调用的函数)

 

       // 声明一个委托       
        public   delegate   void  ClickChange( string  psDeliver);
       
//  定义事件 
        public   event  ClickChange MyChange;
      
// 定义监听函数
        protected   void  OnTestChange( string  psStr)
       {
           
if  (MyChange  !=   null )
           {
              
// 调用委托的函数
               MyChange(psStr);
           }
       }
         
private   void  button1_Click( object  sender, EventArgs e)
        {
            
string  _sStr  =   " yes! you click this button  " ;
            OnTestChange(_sStr);
        }

        
private   void  Form1_Load( object  sender, EventArgs e)
        { 
            
// 委托绑定
             this .MyChange  +=   new  ClickChange(test);
        }
        
// 具体实现的函数
         private   void  test( string  psReceive)
        {
           
this .label1 .Text  =  psReceive;
        }

 

委托和接口都允许类设计器分离类型声明和实现。给定的接口可由任何结构继承和实现;可以为任何类中的方法创建委托,前提是该方法符合委托的方法签名。接口引用或委托可由不了解实现该接口或委托方法的类的对象使用。既然存在这些相似性,那么类设计器何时应使用委托,何时又该使用接口呢?

在以下情况中使用委托:

  • 当使用事件设计模式时。

  • 当封装静态方法可取时。

  • 当调用方不需要访问实现该方法的对象中的其他属性、方法或接口时。

  • 需要方便的组合。

  • 当类可能需要该方法的多个实现时。

在以下情况中使用接口:

  • 当存在一组可能被调用的相关方法时。

  • 当类只需要方法的单个实现时。

  • 当使用接口的类想要将该接口强制转换为其他接口或类类型时。

  • 当正在实现的方法链接到类的类型或标识时:例如比较方法。

 

转载于:https://www.cnblogs.com/JessieDong/archive/2009/07/29/1534166.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值