什么是事件?
这几天在学C#,主要就是看MSDN,事件的用法已经会了,可事件的机制总是看不明白,劳烦大家帮我解释一下下面这个事件是如何定义、触发的,每行代码背后的含义是什么,谢谢!     
 namespace   TestCollections 
 { 
             //   A   delegate   type   for   hooking   up   change   notifications. 
             public   delegate   void   ChangedEventHandler(object   sender,   System.EventArgs   e);   
             //   A   class   that   works   just   like   ArrayList,   but   sends   event 
             //   notifications   whenever   the   list   changes. 
             public   class   ListWithChangedEvent   :   System.Collections.ArrayList 
             { 
                         //   An   event   that   clients   can   use   to   be   notified   whenever   the 
                         //   elements   of   the   list   change. 
                         public   event   ChangedEventHandler   Changed;   
                         //   Invoke   the   Changed   event;   called   whenever   list   changes 
                         protected   virtual   void   OnChanged(System.EventArgs   e) 
                         { 
                                     if   (Changed   !=   null) 
                                     { 
                                                 Changed(this,   e); 
                                     } 
                         }   
                         //   Override   some   of   the   methods   that   can   change   the   list; 
                         //   invoke   event   after   each 
                         public   override   int   Add(object   value) 
                         { 
                                     int   i   =   base.Add(value); 
                                     OnChanged(System.EventArgs.Empty); 
                                     return   i; 
                         }   
                         public   override   void   Clear() 
                         { 
                                     base.Clear(); 
                                     OnChanged(System.EventArgs.Empty); 
                         }