Поделиться через


Ошибка компилятора CS0071

Обновлен: Ноябрь 2007

Сообщение об ошибке

Явная реализация интерфейса события должна использовать синтаксис метода доступа к событиям
An explicit interface implementation of an event must use event accessor syntax

При явной реализации события, объявленного в интерфейсе, необходимо вручную предоставить методы доступа к событию add и remove, которые, как правило, предоставляются компилятором. Код метода доступа может связывать событие интерфейса с другим событием класс (как показано далее в этом разделе) или со своим собственным типом делегата. Дополнительные сведения см. в разделе Практическое руководство. Реализация событий интерфейса (Руководство по программированию в 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() { }
}