public event EventHandler ON_CommandCreating;
我测试过,这个声明有没有event 效果是一样的,请问event 有什么作用?

解决方案 »

  1.   

    这里首先有了个EVENTHANDLER的DELEGATE,然后申明了一个EVENT,EVENT到底要干嘛也不知道,就看你如何在引发这个EVENT后使用这个EVENT,通过这种方式也可以达到解耦的目的。
      

  2.   

    举个例,C#入门经典里的
    namespace Ch13Ex02
    {
       public delegate void MessageHandler(string messageText);   public class Connection
       {
          private static Random random = new Random();      public event MessageHandler MessageArrived;      private Timer pollTimer;      public Connection()
          {
             pollTimer = new Timer(100);
             pollTimer.Elapsed += new ElapsedEventHandler(CheckForMessage);
          }      public void Connect()
          {
             pollTimer.Start();
          }      public void Disconnect()
          {
             pollTimer.Stop();
          }      //private static Random random = new Random();      private void CheckForMessage(object source, ElapsedEventArgs e)
          {
             Console.WriteLine("Checking for new messages.");
             if ((random.Next(9) == 0) && (MessageArrived != null))
             {
                MessageArrived("Hello Mum!");
             }
          }
       }
    }
    这段代码里有没有event 结果完全一样啊
      

  3.   

    查了一下,大概是这么个意思:有event 说明MessageArrived是个事件委托,而没有event 则说明MessageArrived是一般委托,至于在后台有什么不同这就不得而知了