using System;
namespace MyCollections
{
   using System.Collections;

   public delegate void ChangedEventHandler(object sender, EventArgs e);
   public class ListWithChangedEvent: ArrayList
   {
       public event ChangedEventHandler MyAdd;

       public event ChangedEventHandler MyClear;
      protected virtual void OnAdd(EventArgs e)
      {
          if (MyAdd != null)
              MyAdd(this, e);
      }
       protected virtual void OnClear(EventArgs e)
       {
           if (MyClear != null)
               MyClear(this, e);
       }

      public override int Add(object value)
      {
         int i = base.Add(value);
         OnAdd(EventArgs.Empty);
         return i;
      }

      public override void Clear()
      {
         base.Clear();
         OnClear(EventArgs.Empty);
      }
   }

   class Test
   {

      // This will be called whenever the list changes.
      public static void AddChanged(object sender, EventArgs e)
      {
         Console.WriteLine("This is called when the event fires.    Add");
      }

       public static void ClearChanged(object sender, EventArgs e)
       {
           Console.WriteLine("This is called when the event fires. Clear");
       }
      public static void Main()
      {
       ListWithChangedEvent list = new ListWithChangedEvent();
       list.MyAdd += new ChangedEventHandler(AddChanged);
       list.MyAdd += new ChangedEventHandler(AddChanged);
       list.MyClear += new ChangedEventHandler(ClearChanged);
       list.Add("item 1");
       list.Clear();
       list.Add("item 1");
       list.Clear();
    
      }
   }
}

相关文章:

  • 2022-12-23
  • 2021-10-31
  • 2022-12-23
  • 2022-02-21
  • 2021-08-12
  • 2021-12-07
  • 2022-12-23
猜你喜欢
  • 2022-01-21
  • 2022-12-23
  • 2021-09-10
  • 2021-07-08
  • 2021-06-14
相关资源
相似解决方案