DelegateEvent

来源:互联网 发布:帝国cms收费吗 编辑:程序博客网 时间:2024/05/16 19:38
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace DelegateEvent{    class ClassA    {        static public void ClassA_Say()        {            Console.WriteLine("ClassA_Say");        }    }    class ClassB    {        static public void ClassB_Say()        {            Console.WriteLine("ClassB_Say");        }    }    public delegate void SayOutside();    //public static event SayOutside SayOutside_EventHandler;    class ClassC    {            public  delegate void Say();            public static event Say Say_EventHandler;            private static int myVar;//这个字段,只是纯粹用来用用Say_EventHandler用的,没有别的用处。            public static  int MyProperty            {                get {return myVar;}                set {                    myVar = value;                    if(Say_EventHandler!=null)                    {                        Say_EventHandler();                    }                }            }    }    class Program    {        static void Main(string[] args)        {            ClassC.Say handler1 = ClassA.ClassA_Say;// new ClassC.Say(ClassA.ClassA_Say);            handler1();            SayOutside handler2 = ClassB.ClassB_Say;// new SayOutside(ClassB.ClassB_Say);            handler2 += ClassA.ClassA_Say;// new SayOutside(ClassA.ClassA_Say);            handler2();            Console.WriteLine("------------------------------");            ClassC objC=new ClassC();            ClassC.Say_EventHandler += ClassA.ClassA_Say;            ClassC.Say_EventHandler += ClassB.ClassB_Say;            ClassC.MyProperty = 1;        }    }}

0 0
原创粉丝点击