Csharp/CSharp Tutorial/Data Structure/Collection Event
User defined collection with events
<source lang="csharp">using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text; public class NotificationList<T> : Collection<T>{
public event EventHandler<ItemInsertedArgs<T>> ItemAdded; protected override void InsertItem(int index, T item){ EventHandler<ItemInsertedArgs<T>> handler = ItemAdded; if (handler != null){ handler(this, new ItemInsertedArgs<T>(index, item)); } base.InsertItem(index, item); }
} public class ItemInsertedArgs<T> : EventArgs{
public int Index; public T Item; public ItemInsertedArgs(int index, T item) { this.Index = index; this.Item = item; }
} public class MainClass {
public static void Main() { NotificationList<int> list = new NotificationList<int>(); list.ItemAdded += delegate(object o, ItemInsertedArgs<int> args) { Console.WriteLine("A new item was added to the list: {0} at index {1}",args.Item, args.Index); }; for (int i = 0; i < 10; i++) { list.Add(i); } }
}</source>
A new item was added to the list: 0 at index 0 A new item was added to the list: 1 at index 1 A new item was added to the list: 2 at index 2 A new item was added to the list: 3 at index 3 A new item was added to the list: 4 at index 4 A new item was added to the list: 5 at index 5 A new item was added to the list: 6 at index 6 A new item was added to the list: 7 at index 7 A new item was added to the list: 8 at index 8 A new item was added to the list: 9 at index 9