Where to remove event listeners? or What's the best practices to use csharp event

Hi,I remove Event In OnDestroy,but the event sender maybe Destroyed before I remove event,that cause error “MissingReferenceException: The object of type ‘BlahBlah’ has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.”

“Your script should check if it is null”

When the event sender is destroyed already you don’t have to worry about removing your subscription.

We use a several commercial packages in our software development. The sample code as well as the written documentation recommends adding event listeners in OnEnable(), and removing event handlers in OnDisable(). OnDisable() is called when a game object is destroyed (I ran a quick test to verify).