什么是代表?

时间:2010-06-28 22:20:34

标签: c# delegates definition

  

可能重复:
  C# - Can someone tell me why and where I should use delegates?
  C# Delegates Real World Usage

在stackoverflow上搜索答案时,许多代码示例都使用Delegates。这些是什么?它们如何工作?何时,为何以及如何使用它们?请提供一些简单的代码示例

4 个答案:

答案 0 :(得分:1)

Objective-C委托是简单的抽象模式。它在WikiPedia上有所描述。

答案 1 :(得分:1)

代表在C#中不止一件事:

  • 委托类型是一种类似于具有单一方法的接口的类型。
  • 委托实例可以像方法一样调用,除了您可以在运行时附加和分离处理程序,而不是在编译时定义方法体。如果有多个处理程序调用委托将导致调用所有处理程序(假设没有抛出异常)。

Jon Skeet的article on events and delegates更深入地介绍了这一点。

答案 2 :(得分:0)

代表基本上是一流的功能。

也就是说,它们是在程序中独立作为自己的实体的功能,而不是与诸如类之类的另一个实体相关联。

如果您有C / C ++背景,可以将它们视为与函数指针等效的强类型.NET。

答案 3 :(得分:0)

委托是一个类型安全的函数指针 - 通常用于实现抽象,回调等。

请参阅以下答案:

How are delegates in C# better than function pointers in C/C++?

What are the advantages of delegates?

Are delegates and callbacks the same or similar?