Why events can’t be used in the same way in derived classes as in the base class in C#?

Others have explained how to get round the issue, but not why it’s coming up.

When you declare a public field-like event, the compiler creates a public event, and a private field. Within the same class (or nested classes) you can get at the field directly, e.g. to invoke all the handlers. From other classes, you only see the event, which only allows subscription and unsubscription.

Leave a Comment