C#中的delegate(代理/委托),简介说明(zz)

     c# 中,取消了c和c++中使用最灵活,也是最难掌握的指针。那么在C#中如何提供c/C++中的函数指针的功能?c#提供了委托(delegate),委托是继承自System.Delegate类的引用类型。它相当于函数指针原型。与函数指针不同的是,委托在C#中是类型安全的,委托特别适合于匿名调用。要使用委托需经过三个步骤,即声明、实例化、调用。

     using  System;
    
// 声明一个名为mfDelegate的委托,该委托有一个string类型的参数
    
// C#编译器编译时会产生一个新类,该类继承自System.Delegate,类
    
// 名为mfDelegate
     public   delegate   void  mfDelegate( string  name);
    
    
public   class  MikeCat
    
{
    
//定义与mfDelegate有相同参数类型的方法Hello()
    public static void Hello(string name)
    
{
    Console.WriteLine(
"您好,{0}!",name);
    }

    
//定义与mfDelegate有相同参数类型的方法GoodBye()
    public static void GoodBye(string name)
    
{
    Console.WriteLine(
"再见,{0}!",name);
    }

    
public static void Main()
    
{
    
//创建一个mfDelegate实例 mf1
    mfDelegate mf1=new mfDelegate(Hello);
    
//调用mf1
    mf1("mikecat");
    mfDelegate mf2
=new mfDelegate(GoodBye);
    mf2(
"mikecat");
    
//将mf1 mf2组合成一个新的委托mf3
    mfDelegate mf3=mf1+mf2;
    
//调用mf3
    mf3("迈克老猫");
    
//从组合的委托mf3中删除mf1
    mfDelegate mf4=mf3-mf1;
    mf4(
"mikecat");
    }

    }

 程序结果:
   您好,mikecat!//mf1; 再见,mikecat!//mf2
   您好,迈克老猫! 再见,迈克老猫!//mf3
   再见,mikecat!//mf4

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值