編譯器錯誤 C3797
'override': 事件宣告不能有覆寫規範(應該改為放在事件新增/移除/引發方法上)
您無法使用另一個簡單事件覆寫一般事件(沒有明確定義的存取子方法的事件)。 覆寫事件必須使用存取子函式來定義其行為。
如需詳細資訊,請參閱 事件。
範例
下列範例會產生 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 {}
}
};