次の方法で共有


コンパイラ エラー C3797

'override': イベント宣言は、オーバーライド指定子を含むことはできません。イベントの add、remove、または raise メソッドに配置しなければなりません

単純なイベント (明示的に定義されたアクセサー メソッドがないイベント) を別の単純なイベントでオーバーライドすることはできません。 オーバーライドする側のイベントの動作は、アクセサー関数を使用して定義する必要があります。

詳細については、event に関するページを参照してください。

次の例では、C3797 エラーが生成されます。

// C3797.cpp
// compile with: /clr /c
delegate void MyDel();

ref class Class1 {
public:
   virtual event MyDel ^ E;
};

ref class Class2 : public Class1 {
public:
   virtual event MyDel ^ E override;   // C3797
};

// OK
ref class Class3 : public Class1 {
public:
   virtual event MyDel ^ E {
      void add(MyDel ^ d) override {}
      void remove(MyDel ^ d) override {}
   }
};