Erreur du compilateur C3797
'override' : la déclaration d’événement ne peut pas avoir de spécificateur de remplacement (doit être placée sur les méthodes add/remove/raise d’événement à la place)
Vous ne pouvez pas remplacer un événement trivial (un événement sans méthodes d’accesseur explicitement définies) avec un autre événement trivial. L’événement de substitution doit définir son comportement avec les fonctions d’accesseur.
Pour plus d’informations, consultez l’événement.
Exemple
L’exemple suivant génère l’erreur 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 {}
}
};