Compartir a través de


Error del compilador C3797

"override": la declaración de evento no puede tener un especificador de invalidación (en su lugar, se debe colocar en métodos add, remove o raise)

No se puede invalidar un evento trivial (un evento sin métodos de descriptores de acceso definidos explícitamente) con otro evento trivial. El evento de invalidación debe definir su comportamiento con funciones de descriptor de acceso.

Para más información, consulte event.

Ejemplo

El ejemplo siguiente genera el error 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 {}
   }
};