.NET - 事件添加和删除

时间:2012-03-11 17:42:27

标签: c# .net

在.NET中创建和使用事件时,我从未使用过'add'和'remove'。看看下面的代码:

public event EventHandler InitComplete
    {
        add
        {
            base.Events.AddHandler(EventInitComplete, value);
        }
        remove
        {
            base.Events.RemoveHandler(EventInitComplete, value);
        }
    }

我意识到这是一个非常简单的问题,但是'价值'在哪里宣布?任何人都可以推荐使用添加和删除的好教程。我已经阅读了一些,但仍然不够明智。

1 个答案:

答案 0 :(得分:7)

value是“正在订阅或取消订阅的任何处理程序”。所以你可以想到:

button.Click += HandleClick;

类似于:

button.add_Click(new EventHandler(HandleClick));

在这方面,事件就像一个财产:

private string foo;
public string Foo
{
    get { return foo; }
    set { foo = value; }
}

...除了事件您有addremove而不是getset

有关详细信息,请参阅my article on events and delegates - 有关详细信息,请参阅C#4语言规范的10.8节。