【问题标题】:What are Delegates? [duplicate]什么是代表? [复制]
【发布时间】:2026-01-27 06:10:01
【问题描述】:

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

在 * 上搜索答案时,许多代码示例都使用委托。这些是什么?它们是如何工作的?何时、为什么以及如何使用它们?请给出一些简单的代码示例

【问题讨论】:

标签: c# delegates definition


【解决方案1】:

Objective-C 委托是简单的抽象模式。在WikiPedia 上有非常详细的描述。

【讨论】:

    【解决方案2】:

    在 C# 中,委托不仅仅是一件事:

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

    Jon Skeet 的 article on events and delegates 对此进行了更深入的介绍。

    【讨论】:

      【解决方案3】:

      委托基本上是一流的功能。

      也就是说,它们是在程序中作为自己的实体独立存在的函数,而不是被绑定到另一个实体(例如类)。

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

      【讨论】:

      • 我怀疑这种解释对 OP 是否有用,因为它假定了一些先前的知识。
      【解决方案4】:

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

      查看这些答案:

      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?

      【讨论】:

        最近更新 更多