如何修复此错误:“MyEvent + = expected”?

时间:2008-11-16 18:02:05

标签: .net delegates

我有一位代表,说:

public delegate void MyDelegate();

我有一个事件,比如说:

public MyDelegate MyEvent;

在调用事件时,我收到一条错误消息:

  

“MyEvent + =期待......”

如何解决此问题?

5 个答案:

答案 0 :(得分:4)

您只能从声明它的类中调用该事件。在任何其他地方,您只能通过运算符+=-=从事件委托中添加或删除处理程序,因此会显示错误消息。

答案 1 :(得分:4)

+ =与事件相关联,而不仅仅是委托的声明。您缺少'event'关键字。

public **event** MyDelegate MyEvent;

一旦你有了这个关键字,+ =将适合你。

答案 2 :(得分:1)

如果您尝试使用其他类中的事件,则需要了解事件和委托之间的区别。事件只是封装了“订阅”和“取消订阅”方面,而不是“提升事件”。 (事实上​​在IL中你可以拥有“举起活动”的成员,但C#不支持它。)

有关详细信息,请参阅my article on events and delegates

答案 3 :(得分:0)

另外,您可能需要查看有关avoiding checking for null delegates

的帖子

答案 4 :(得分:0)

查看Chris Sells .NET Delegates: A C# Bedtime Story,获取代表和活动的精彩指南。信息丰富且非常有趣。