The default implementation of this method is intended to be overridden by a derived class to perform some action before the specified element is removed.
The On* methods are invoked only on the instance returned by the List property, but not on the instance returned by the InnerList property.
If the process fails, the collection reverts back to its previous state.
The default implementation of this method is an O(1) operation.
Notes to Implementers: This method allows implementers to define processes that must be performed before removing the element from the underlying System.Collections..::.ArrayList. By defining this method, implementers can add functionality to inherited methods without having to override all other methods.
OnRemove is invoked before the standard Remove behavior, whereas OnRemoveComplete is invoked after the standard Remove behavior.
For example, implementers can prevent removal of elements by always throwing an exception in OnRemove.
OnValidate is called prior to this method.