CollectionBase.OnSetComplete(Int32, Object, Object) Method


Performs additional custom processes after setting a value in the CollectionBase instance.

 virtual void OnSetComplete(int index, System::Object ^ oldValue, System::Object ^ newValue);
protected virtual void OnSetComplete (int index, object oldValue, object newValue);
abstract member OnSetComplete : int * obj * obj -> unit
override this.OnSetComplete : int * obj * obj -> unit
Protected Overridable Sub OnSetComplete (index As Integer, oldValue As Object, newValue As Object)



The zero-based index at which oldValue can be found.


The value to replace with newValue.


The new value of the element at index.


The default implementation of this method is intended to be overridden by a derived class to perform some action after the specified element is set.

The On* methods are invoked only on the instance returned by the List property, but not on the instance returned by the InnerList property.

The collection reverts back to its previous state if one of the following occurs:

  • The process fails.

  • This method is overridden to throw an exception.

The default implementation of this method is an O(1) operation.

Notes to Inheritors

This method allows implementers to define processes that must be performed after setting the specified element in the underlying ArrayList. By defining this method, implementers can add functionality to inherited methods without having to override all other methods.

OnSet(Int32, Object, Object) is invoked before the standard Set behavior, whereas OnSetComplete(Int32, Object, Object) is invoked after the standard Set behavior.

Applies to

See also