关于委托和事件中的一个问题
先声明一个委托: 
 public   delegate   void   MessageHandler(string   messageText) 
 在Connect类中声明下面这个: 
 public   event   MessageHandler   MessageArrived 
 委托调用的方法是: 
 public   class   Display 
 	{		 
                            public   void   DisplayMessage(string   message) 
                            {Console.WriteLine( "Message   arrived:   {0} ",   message);}	 
 	} 
 在主类中先注明了这个 
 Connection   myConnection   =   new   Connection();//初始化 
                            Display   myDisplay   =   new   Display(); 
    myConnection.MessageArrived   += 
                            new   MessageHandler   (myDisplay.DisplayMessage); 
 在主类中事件中调用 
                            if   (   MessageArrived   !=   null   ) 
                            {   MessageArrived( "Hello   Mum! ");   } 
 这里MessageArrived   !=   null   怎么理解? 
 从运行情况下,MessageArrived   !=   null   为true!这个怎么理解? 
 初始化Connection这个类的时候MessageArrived   是null, 
 调用   myConnection.MessageArrived   += 
                            new   MessageHandler   (myDisplay.DisplayMessage);后, 
 MessageArrived   这个时候还是null吗? 
 myConnection.MessageArrived   += 
                            new   MessageHandler   (myDisplay.DisplayMessage)是按什么步骤算的? 
 上面整个过程只指出现过MessageArrived( "Hello   Mum! ");    
 那么new   MessageHandler   (myDisplay.DisplayMessage)调用public   delegate   void   MessageHandler(string   messageText)中的messageText是什么?   
------解决方案--------------------调用 myConnection.MessageArrived += 
          new MessageHandler (myDisplay.DisplayMessage);后, 
 MessageArrived 这个时候还是null吗? 
 ====================== 
 MessageArrived有值了,这个 "值 "就是:myDisplay.DisplayMessage,所以不是null;     
 myConnection.MessageArrived += 
          new MessageHandler (myDisplay.DisplayMessage)是按什么步骤算的? 
 ============================ 
  "+= "注册事件运算符,可以简单地理解给委托变量MessageArrived赋值为myDisplay.DisplayMessage     
 上面整个过程只指出现过MessageArrived( "Hello Mum! ");  
 那么new MessageHandler (myDisplay.DisplayMessage)调用public delegate void MessageHandler(string messageText)中的messageText是什么? 
 ======================= 
 就是 "Hello Mum! "; 因为MessageArrived已经被赋值为myDisplay.DisplayMessage,所以MessageArrived( "Hello Mum! ")相当于调用了myDisplay.DisplayMessage( "Hello Mum! "),所以形参messageText的值为 "Hello Mum! "