Csharp/CSharp Tutorial/Data Structure/Collection Event

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

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