Ошибка компилятора C3797
"override": объявление события не может иметь описатель переопределения (вместо этого следует поместить в методы add/remove/raise)
Не удается переопределить тривиальное событие (событие без явно определенных методов доступа) с другим тривиальным событием. Событие переопределения должно определять его поведение с функциями доступа.
Дополнительные сведения см. в разделе "Событие".
Пример
Следующий пример приводит к возникновению ошибки 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 {}
}
};