事件与委托001

delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类与其它的类不同,delegate类能够拥有一个签名,并且它"只能持有与它的签名相匹配的方法的引用"。它允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m。

实现一个delegate是很简单的,通过以下3个步骤即可实现一个delegate:

1. 声明一个delegate对象,它应当与你想要传递的方法具有相同的参数和返回值类型。

2. 创建delegate对象,并"将你想要传递的函数作为参数传入"。

3.在要实现异步调用的地方,通过上一步创建的对象来调用方法。

using System;

public class MyDelegateTest

{

// 步骤1,声明delegate对象

public delegate void MyDelegate(string name);

// 这是我们欲传递的方法,它与MyDelegate具有相同的参数和返回值类型

public static void MyDelegateFunc(string name)

{

Console.WriteLine("Hello, ", name);

}

public static void Main()

{

// 步骤2,创建delegate对象(实例??)

MyDelegate md = new MyDelegate(MyDelegateTest.MyDelegateFunc);

// 步骤3,调用delegate

md("sam1111");

}

}

输出结果是:Hello, sam1111

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,203评论 30 471
  • 在海的深处,有一只叫alice的鲸鱼。 没有伙伴,没有朋友。它叫声的频率比其他的鲸鱼高一倍,而它自己却不知道。它很...
    332sunshine阅读 1,443评论 9 11
  • Device Pixels(设备像素) 一个设备像素(或者称为物理像素)是显示器上最小的物理显示单元。在操作系统的...
    Liberty寒风阅读 510评论 0 0