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

转载 2007年09月19日 21:28:00

     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

C# delegate简介

C# 是一个颇具争议的新兴语言,由 Microsoft 开发创造,以作为其 Visual Studio.NET 的基石,目前正处于第一个 Beta 版的发布阶段。C# 结合了源自 C++ 和 Java...

【iOS-开发】:delegate(委托、代理)模式的设置方法

一、说明: 1.委托者:设置代理协议的类 2.代理者:接受委托者代理的类 二、实现步骤: 1、在类TYBoardController.h中定义一个protocol代理协议,并声明一个协议的属性...

iOS委托代理(delegate)介绍

OC是没有多继承的,所以在很多时候,需要使用到协议(protocol)。前面有文章对协议进行了简单的介绍,这里就不多说了。这里说一下一个与协议有关的东西----委托代理(delegate)。 委托代理...

iOS 委托代理(delegate)入门

一、什么是委托  首先让我们来看看委托的定义:委托(delegate),就是某个对象指定另一个对象处理某些特定任务的设计模式。通俗来说,就是“某个对象”把要做的事情委托给“另一个对象”去做,简单吧...

[IOS]Protocol协议及委托代理(Delegate)传值-用代码寻找storyboard相应视图

Protocol协议及委托代理(Delegate)传值前言:因为Swift是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供...

iOS 委托代理(delegate)入门

**************************************************************                                     ...

IOS开发-Protocol协议及委托代理(Delegate)传值

前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但...
  • zhuobi0
  • zhuobi0
  • 2015年01月08日 22:20
  • 230

03、3分钟教你搞定这该死的Delegate!代理与协议委托的深度理解

总结做程序时,经常会碰到这样一种情况:在对象A中有一个对象B,在B中做某个操作时需要调用A对象的某个方法。这时,我们就需要用代理机制,也叫委托机制。还记得刚接触面向对象的时候,居然在B对象中又allo...

iOS开发-Protocol协议及委托代理(Delegate)传值

前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#中的delegate(代理/委托),简介说明(zz)
举报原因:
原因补充:

(最多只允许输入30个字)