다음을 통해 공유


컴파일러 오류 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 {}
   }
};