namespace ConsoleApplication1
{
    public delegate void MyDelegate(string abc);    class ClassA
    {
        public event MyDelegate OnOccurUseDelegate;     //这行的event可用可不用
        public event EventHandler OnOccurUseEventHandler;//这行的event可用可不用
        public void Run()
        {
            Console.WriteLine("ClassA Run()");
            Console.WriteLine("invoke the Onccur");
            OnOccurUseDelegate("OnOccurUseDelegate");
            OnOccurUseEventHandler(this, EventArgs.Empty);        }        
    }    class ClassB
    {
        public ClassB(ClassA a)
        {
            a.OnOccurUseDelegate += new MyDelegate(Run);
            a.OnOccurUseEventHandler += new EventHandler(Run);
        }        private void Run(string abc)
        {
            Console.WriteLine(abc);
        }        private void Run(Object sender,EventArgs args)
        {
            Run("OnOccurUseEventHandler");
        }    }
    class Program
    {
        static void Main(string[] args)
        {
            ClassA a = new ClassA();
            ClassB b = new ClassB(a);
            a.Run();
            Console.Read();
        }
    }}