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