为事件分配值

问题描述 投票:0回答:1

[我当时看着this question,虽然我认为我大多数时候都了解事件访问器,但其他两个方面使我感到困惑。

第一:

private event Action<int> ActivityChanged = delegate {};

此事件是否使用variable-initializers分配了一个值,我的理解是,事件中仅允许+ =和-=运算符?匿名方法在这里做什么?

第二:

event Action<int> IActivityFacade.ActivityChanged
{
    add
    {
        ActivityChanged += value;
        value(GetSelectedActivity()); 
    }
    remove { ActivityChanged -= value; }
}

第一行是向前声明,第二行是定义吗?我来自C ++ / C背景,这对我来说似乎是这样,但就我所知,这可能完全意味着其他事情。 C#中甚至允许使用前向声明]

c# events delegates
1个回答
1
投票
  • 第一行是私有成员,是带有虚拟初始化程序的实际“事件”。事件具有+ =和-=运算符用于订阅和取消订阅,如果没有哑元,它将抛出空引用
© www.soinside.com 2019 - 2024. All rights reserved.