yao

导航

C#中的事件

    public class NameListEventArgs:EventArgs   //定义事件的EventArgs
    {
        string name;
        int count;
        public NameListEventArgs(string str, int i)
        {
            name = str;
            count = i;

        }
        public string Name
        {
            get { return name; }
        }
        public int Count
        {
            get{return count;}
        }
       
    }
    //声明一个事件委托, 无返回值,参数为object ,NameListEventArgs 
    public delegate void NameListEventHandler(object source,NameListEventArgs args);

    public class NameList      {
        ArrayList list;
        public event NameListEventHandler nameListEvent;//为此类添加自定义事件

        public NameList()     //构造函数
        {
            list = new ArrayList();
        
        }

        public void add(string Name)  //方法
        {
            list.Add(Name);
            if (nameListEvent != null)     //判断事件是否发生
            {
                nameListEvent(this, new NameListEventArgs(Name, list.Count));
            }
 
        }

    }

//测试
    public class EventDemo
    {
        public static void Main()
        {
            NameList names = new NameList();
            names.nameListEvent += new NameListEventHandler(NewName);      //注册事件
            names.nameListEvent += new NameListEventHandler(CurrentCount);
            names.add("aaa");
            names.add("bbb");
        }

        public static void NewName(object source,NameListEventArgs args)
        {
            Console.WriteLine(args.Name+"添加进了list");

        }
        public static void CurrentCount(object source, NameListEventArgs args)
        {
            Console.WriteLine("总共有"+args.Count+"条记录!");

        }

    }

输出结果:
aaa添加进了list
总共有1条记录!
bbb添加进了list
总共有2条记录!



posted on 2007-08-30 14:31  yao  阅读(260)  评论(0编辑  收藏  举报