接口与委托

接口
接口就是类与类之间交互时遵守的一个显示定义。是独立于类的一个定义。接口定义类之间交互的标准。
接口是类之间交互内容的一个抽象,把类之间需要交互的内容抽象出来定义成接口,可以更好的控制类之间的逻辑交互。
接口只包含成员定义,不包含成员的实现,成员的实现需要在继承的类或者结构中实现。接口的成员包括:方法,特性,索引器,事件。
1:接口可以使用多重继承
2:类和结构可以实现多个接口
委托
适用于那种在某些其他语言中需要用函数指针来解决的情况(场合)。但是,与函数指针不同,委托是面向对象和类型安全的。
委托声明定义一个类,它是从System.Delegate类派生的类。委托实例封装了一个调用列表,该列表列出了一个或多个方法,每个方法成为一个可调用的实体。对于实例方法,可调用实体由一个实例和该实例的方法组成。对于静态方法,可调用实体仅一个方法组成。如果用一组合适的参数来调用一个委托实例,则该委托实例所封装的每个可调用实体都会被调用,并且用的都是上述的同一组参数。
委托实例的一个有趣且有用的属性是:它既不知道也不关心有关它所封装的方法所属的类的种种详情;对它来说最重要的是这些方法与该委托实例的类型兼容。这使得委托非常适合“匿名”调用。这是一个强大的功能。
定义和使用委托分三个步骤:声明、实例化和调用。
委托用委托声明语法来声明,例如:
delegate void SimpleDelegate();//不含参并且不返回任何结果
示例:(为方法创建一个委托,然后立即通过这个委托调用该方法---没太大意义)
class Test
{
  static void F(){
   System.Console.WriteLine("Test.F");
  }
  static void Main(){
  SimpleDelegate d=new SimpleDelegate(F);//定义委托代理
  d();       
  }
}
示例:(涉及它的匿名特性---真正的效用)
void MultiCall(SimpleDelegate d,int count){
 for(int i=0;i<count;i++){
   d()
   }
}//重复调用委托(目标方法要与委托兼容)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值