了解代表泛型

时间:2015-07-01 09:33:19

标签: c# .net delegates

我正在阅读一篇关于在复合视频上开发可扩展软件的课程,在其中一张幻灯片中,这个代码出现了。到目前为止,我对代表的理解是,它用于指出其他方法,但我无法弄清楚代表的目的是什么,以及是否有人可以指出我正确的方向。

enter image description here

2 个答案:

答案 0 :(得分:1)

正如那里写的那样,它并不是非常有用......他们可以使用Action<OrderItemProcessedEventArgs>,它本来就是等价的。 (Action<>是不返回任何内容的方法的通用委托。它的官方描述类似于封装一个具有单个参数且不返回值的方法。

写入的委托(以及Action<OrderItemProcessedEventArgs>)表示返回void的方法(因此不会返回任何内容)并且接受单个OrderItemProcessedEventArgs参数。例如:

public void MyMethod(OrderItemProcessedEventArgs arg)
{
}

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

现在......大块代码创建了一个CommerceEvents,它似乎是一个事件的容器(不是C# - event,直接委托),有些代码可以& #34;订阅&#34;通过为属性分配方法(在这种情况下为OrderItemProcessed)。必要时,其他一些代码将调用OrderItemProcessed(someOtherItemProcessedEventArgs),传递一个&#34;描述符&#34;为什么&#34;事件&#34;已执行(OrderItemProcessedEventArgs类)

答案 1 :(得分:-2)

您声明的委托表示采用泛型T参数并返回void的任何方法。 T可以是任何类。您还可以查看Func和Action委托,它们本质上也是通用的。