编译器错误 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 {}
}
};