, . .
, IList<T>. - Collection<T>. Collection<T> IList<T> protected virtual:
InsertItem
SetItem
RemoveItem
ClearItems
, , , , InsertItem SetItem.
class MyCollection:Collection<T>
{
private void ValidateItem(T item)
{
if(item is invalid)
throw new ArgumentException("Item is invalid");
}
protected override InsertItem(int index, T item)
{
ValidateItem(item);
base.InsertItem(index, item);
}
protected override SetItem(int index, T item)
{
ValidateItem(item);
base.SetItem(index, item);
}
}