Это не ошибка , но это может быть плохим дизайнерским решением. Есть большая разница; компилятор не позволит вам избежать ошибки, но он редко критикует ваш дизайн.
Код, который вы указали для OnCollectionChanged
, не не переопределяет событие - он переопределяет метод, который вызывает событие. Это совершенно другой вопрос. Событие что-то вроде:
// "Field-like" event - the compiler implements the add/remove and
// creates a backing field.
public event EventHandler Click;
или
// Manually-implemented event; you write the add/remove yourself, and
// create a separate backing variable if necessary.
public event EventHandler Click
{
add { ... }
remove { ... }
}
Это фрагменты кода, которые обрабатывают подписку и отмену подписки - и это эти , что совет говорит, что вы не должны переопределять. Вы редко бы хотели бы , и, как говорится в цитируемом тексте, существует множество ситуаций, когда он не будет делать то, что вы хотели, в любом случае.