using System;
using System.Collections.Generic;
using System.Text;namespace Myproject
{
    public delegate void TestEventDelegate();
    class EventSource
    {
        public event TestEventDelegate TestEvent;
        public void RaiseTestEvent()
        {
            if (TestEvent != null)
            {
                TestEvent();
            }
        }
    }
    class EventReceive
    {
        public void ReceiveTestEvent()
        {
            Console.WriteLine("事件接收");
        }
        public void Subscribe()
        {
            //怎么写  ?
 
        }
    }    class Program
    {
        
        static void Main(string[] args)
        {
            //接下来应该怎么写  ?
        }
    }
}
我定义了一个Subscribe方法,该方法如何把ReceiveTestEvent方法和TestEvent事件联系起来?同时在该方法中调用RaiseTestEvent方法。然后又是如何在Main方法中调用EventReceive类中Subscribe方法 ?

解决方案 »

  1.   

        class EventReceive
        {
            public void ReceiveTestEvent()
            {
                Console.WriteLine("事件接收");
            }
            public void Subscribe()
            {
                //怎么写  ?
                EventSource eventSource = new EventSource();
                eventSource.TestEvent += new TestEventDelegate(ReceiveTestEvent);            eventSource.RaiseTestEvent(); // 引发事件
            }
        } 
        class Program
        {
           
            static void Main(string[] args)
            {
                //接下来应该怎么写  ?
                EventReceive eventReceive = new EventReceive();
                eventReceive.Subscribe();
            }
        } 
      

  2.   

    LZ看下我BLOG里的吧,写过2篇委托和事件的学习笔记。
    http://blog.csdn,net/cc_net
      

  3.   

    点写成逗号了
    http://blog.csdn.net/cc_net
      

  4.   


     class Program
        {
            static void Main(string[] args)
            {
                EventSource e = new EventSource();
                EventReceive er = new EventReceive();
                er.Subscribe();
                e.RaiseTestEvent();
            }
        }    public delegate void TestEventDelegate();
        class EventSource
        {
            public static event TestEventDelegate TestEvent;
            public void RaiseTestEvent()
            {
                if (TestEvent != null)
                {
                    TestEvent();
                }
            }
        }
        class EventReceive
        {
            public void ReceiveTestEvent()
            {
                Console.WriteLine("事件接收");
                Console.Read();
            }
            public void Subscribe()
            {
                EventSource.TestEvent += new TestEventDelegate(ReceiveTestEvent);
            }
        } 
      

  5.   


    using System;
    using System.Collections.Generic;
    using System.Text;namespace Myproject
    {
        public delegate void TestEventDelegate();
        class EventSource
        {
            public  event TestEventDelegate TestEvent;
            public void RaiseTestEvent()
            {
                if (TestEvent != null)
                {
                    TestEvent();
                }
            }
        }
        class EventReceive
        {
            public void ReceiveTestEvent()
            {
                Console.WriteLine("事件接收");
            }
            public void Subscribe()
            {
                //EventSource.TestEvent += new TestEventDelegate(ReceiveTestEvent);
                EventSource eventSource = new EventSource();
                eventSource.TestEvent += new TestEventDelegate(ReceiveTestEvent);            eventSource.RaiseTestEvent(); // 引发事件 
     
            }
        }    class Program
        {
            
            static void Main(string[] args)
            {
                //EventSource e = new EventSource();
                //EventReceive er = new EventReceive();
                //er.Subscribe();
                //e.RaiseTestEvent();
                EventReceive eventReceive = new EventReceive();
                eventReceive.Subscribe(); 
            }
        }
    }
    综上所述...