理解委托泛型

Understanding Delegates Generics

我正在学习关于在 pluralsight 上开发可扩展软件的课程,在其中一张幻灯片中,出现了这段代码。到目前为止,我对委托的理解是它用于指向其他方法,但我无法弄清楚这里委托的目的是什么,如果有人能指出正确的方向,请。

您声明的委托代表任何采用通用 T 参数和 returns void 的方法。 T 可以是任何 class。您还可以查看本质上也是通用的 Func 和 Action 委托。

正如那里所写,它不是很有用......他们本可以使用 Action<OrderItemProcessedEventArgs> 并且它本来是等效的。 (Action<> 是不 return 任何方法的通用委托。其官方描述类似于 Encapsulates a method that has a single parameter and does not return一个值。)

所写的委托(和 Action<OrderItemProcessedEventArgs>)表示一个方法 returns void(所以 return 没有任何东西)并且接受一个单个 OrderItemProcessedEventArgs 参数。例如:

public void MyMethod(OrderItemProcessedEventArgs arg)
{
}

将是与该委托兼容的方法。

现在...那一大块代码创建了一个CommerceEvents,它似乎是一个事件容器(不是C#-events,直接委托),一些代码可以 "subscribe" 通过将方法分配给属性(在本例中为 OrderItemProcessed )。必要时,其他一些代码将调用 OrderItemProcessed(someOtherItemProcessedEventArgs),并传递 "descriptor" 说明执行 "event" 的原因(OrderItemProcessedEventArgs class)