Compiler Error CS0071

事件的显式接口实现必须使用事件访问器语法

当显式实现在接口中声明的事件时,您必须手动提供通常由编译器提供的 addremove 事件访问器。访问器代码可将类中的接口事件连接到另一事件(稍后在本主题中演示),或连接到其自身的委托类型。有关更多信息,请参见如何:实现接口事件(C# 编程指南)

下面的示例生成 CS0071。

// CS0071.cs
public delegate void MyEvent(object sender);

interface ITest
{
    event MyEvent Clicked;
}

class Test : Itest
{
    event MyEvent ITest.Clicked;  // CS0071

    // try the following code instead
/*
private MyEvent clicked;

    event MyEvent Itest.Clicked
    {
        add
        {
            clicked += value;
        }
        remove
        {
            clicked -= value;
        }
    }
*/
    public static void Main() { }
}