为事件赋值

Assignment a value to Events

我正在查看 ,虽然我认为我主要了解事件访问器,但另外两个方面让我感到困惑。

第一个:

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

是否为该事件分配了 variable-initializers 的值,我的理解是只有 += 和 -= 运算符被允许用于事件?匿名方法在这里做什么?

第二个:

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

第一行是前向声明,第二行是定义吗?我来自 C++/C 背景,这就是我所看到的,但据我所知,它可能意味着完全不同的东西。 C# 是否允许前向声明

  • 第一行是私有成员和带有虚拟初始值设定项的实际 'event'。事件有运算符 += 和 -= 用于订阅和取消订阅,没有虚拟它会抛出空引用
  • second 是对具有相同 += 和 -=
  • 的订阅者公开可用的访问器

通过会员活动,您可以按照以下方式解雇他们 this.ActivityChanged() some example

IActivityFacade.ActivityChanged 这意味着 class 实现接口,我们将其明确定义为关于 interface events and explicit enterface

的事件访问器