为什么我们需要回调事件?

时间:2010-08-17 18:00:46

标签: c# .net

我们可以使用委托来调用回调方法。 例如,

public delegate bool ContinueProcessing();

//稍后我们可以写代码,

ContinueProcessing cp = new ContinueProcessing(IsDataAvailable);

cp + = new ContinueProcessing(IsTransactionComplete);

//稍后在代码定义方法

bool IsDataAvailable() { 返回true; }

bool IsTransactionComplete() { 返回true; }

cp.Invoke();

上面的调用将一个接一个地调用两个布尔方法。 为什么我们需要“活动”? “活动”的目的是什么?

3 个答案:

答案 0 :(得分:9)

事件是回调,您可以让多个订阅者互不干扰,不能互相打电话。

代表提供“这是我想要采取的行动”的封装,事件提供了发布/订阅模型的封装。

有关详细信息,请参阅我的article on events

答案 1 :(得分:0)

代表非常通用。它们可以在任何上下文中使用:在同一个类中,在类之间,在静态方法中等。

事件更具体 - 它们专门设计用于一个类来订阅另一个类引发的事件。

Delegate是一种指向函数的(类型)类型安全指针,而event是包含委托的包装器,它为Subscribe / Unsubscribe / Raise事件提供标准接口。

答案 2 :(得分:0)

看起来'event'关键字是委托声明的修饰符,允许它包含在接口中,从声明它的类中限制它的调用,为它提供一对可自定义的访问器(添加和删除)并强制委托的签名(在.NET框架中使用时)。