在.NET中创建和使用事件时,我从未使用过'add'和'remove'。看看下面的代码:
public event EventHandler InitComplete
{
add
{
base.Events.AddHandler(EventInitComplete, value);
}
remove
{
base.Events.RemoveHandler(EventInitComplete, value);
}
}
我意识到这是一个非常简单的问题,但是'价值'在哪里宣布?任何人都可以推荐使用添加和删除的好教程。我已经阅读了一些,但仍然不够明智。
答案 0 :(得分:7)
value
是“正在订阅或取消订阅的任何处理程序”。所以你可以想到:
button.Click += HandleClick;
类似于:
button.add_Click(new EventHandler(HandleClick));
在这方面,事件就像一个财产:
private string foo;
public string Foo
{
get { return foo; }
set { foo = value; }
}
...除了事件您有add
和remove
而不是get
和set
。
有关详细信息,请参阅my article on events and delegates - 有关详细信息,请参阅C#4语言规范的10.8节。