Compartilhar via


Erro do compilador C3797

'override': a declaração de evento não pode ter especificador de substituição (deve ser colocada em métodos de adição/remoção/aumento de eventos)

Você não pode substituir um evento trivial (um evento sem mecanismos de acesso explicitamente definidos) por outro evento trivial. O evento de substituição deve definir seu comportamento com funções de acessador.

Para obter mais informações, confira eventos.

Exemplo

O seguinte exemplo gera o erro 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 {}
   }
};