C# - 在声明类之外调用事件

Bit*_*lue 2 c# compiler-construction events derived-class

我在类Alice中有一个事件要在派生类中引发Bob:

public class Alice
{
    public event Action<object> ValueChanged;
}

public class Bob : Alice
{
    public void method1(Alice bigAlice)
    {
        // raise ValueChanged event
        // or
        // raise ValueChanged event on bigAlice
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器错误说我只能使用+=,-=如果我不在事件的声明类中.我怎么能从鲍勃的代码中解雇那个事件呢?

spe*_*der 8

除声明类之外的任何地方都不能引发事件.

在基类中创建一个受保护的方法,该方法引发事件并从子类中调用它.