英語で読む

次の方法で共有


コンパイラ エラー CS0072

'event' : オーバーライドできません。'method' はイベントではありません

イベント は別のイベントのみをオーバーライドできます。 詳細については、「イベント」を参照してください。

次の例では CS0072 が生成されます。

// CS0072.cs
delegate void MyDelegate();

class Test1
{
    public virtual event MyDelegate MyEvent;
    public virtual void VMeth()
    {
    }

    public void FireAway()
    {
        if (MyEvent != null)
            MyEvent();
    }
}

class Test2 : Test1
{
    public override event MyDelegate VMeth   // CS0072
    // Uncomment the following lines to resolve.
    // public override event MyDelegate MyEvent
    {
        add
        {
            VMeth += value;
            // MyEvent += value;
        }
        remove
        {
            VMeth -= value;
            // MyEvent -= value;
        }
   }

   public static void Main()
   {
   }
}