Udostępnij za pomocą


Błąd kompilatora C3797

"override": deklaracja zdarzenia nie może mieć specyfikatora przesłonięcia (należy umieścić w metodach dodawania/usuwania/zgłaszania zdarzeń)

Uwagi

Nie można zastąpić trywialnego zdarzenia (zdarzenia bez jawnie zdefiniowanych metod dostępu) z innym trywialnym zdarzeniem. Przesłonięcia zdarzenie musi definiować jego zachowanie za pomocą funkcji dostępu.

Aby uzyskać więcej informacji, zobacz zdarzenie.

Przykład

Poniższy przykład generuje kod 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 {}
   }
};