全面讲解:委托、事件

每个编程者在项目中必定绕不开的话题:委托和事件。对于初学者来说,总会感觉有些难以理解,或者说无法自己随意运用。本文对委托、事件做一个详细的讲解,即是基础知识的自我温故,同时亦是记录。篇幅有些长,如果认真阅读,相信你会有所收获。

《Introducing Visual C# 2010》(Adam Freeman著,Apress出版)一书的第10章中有这样的介绍:

Delegates are special types thatencapsulate a method, similar to function pointers found in other programminglanguages. Delegates have a number of uses in C#, but you are most likely toencounter a special type of delegate—the event. Events make notifyinginterested parties simple and flexible, and I’ll explain the convention fortheir use later in the chapter.

委托是封装方法的特殊类型,它类似于其它编程语言中的函数指针。委托在C#中有大量运用,但你最可能遇到的是一种特殊的委托类型— 事件。事件使得对相关部件的通知变得简单而灵活,本章后面将解释其使用约定。

I’ll also explain the Func and Action typesthat let you use delegates in a more convenient form and that are usedextensively in some of the latest C# language features, such as parallelprogramming. We’ll finish up this chapter with a look at anonymous methods andlambda expressions, two C# features that let us implement delegates withouthaving to define methods in our classes.

我也会解释Func和Action类型,它们让你以更方便的形式使用委托,而且在一些最新的C#特性中也有广泛使用,如并行编程。本章最后考察匿名方法和lambda表达式,这是让我们不必在类中定义方法就可以使用委托的两个C#特性。

 

委托:

委托定义:将函数作为另一个函数的参数进行调用。另外的解释:当一个类或者是进程需要调用另外一个方法时,需要借助另外的类或者是进程进行调用,这种机制称为委托。网上有大牛说:委托可以理解为函数指针,不同的是委托是面向对象、类型安全的。

实现步骤:

1、声明一个委托类型:

public delegate int CalculateDelegate(int x, int y);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygxjw.html