当前位置:编程学习 > C#/ASP.NET >>

C#事件中TestEvent的值是在何时被赋的???值是多少??多谢指导

using System;
using System.Collections.Generic;
using System.Text;

namespace shijian
{
    public class ee
    {
        public class ff : EventArgs  
        {
            public readonly char aa;
            public ff(char aa)
            {
                aa = aa;
            }
        }

        public delegate void weituo(object sender, ff e);
        public event weituo TestEvent;

        protected virtual void OnTestEvent(ff e)
        {
            if (TestEvent != null)
                TestEvent(this, e);
        }

        public void RaiseEvent(char aa)
        {
            ff e = new ff(aa);
            OnTestEvent(e);
        }
    }

    public class zz
    {
        public void KeyPressed(object sender, ee.ff e)
        {
            Console.WriteLine("发送者为:{0}, 所按的键为:{1}", sender, e.aa);
        }
        public void Subscribe(ee eventSource)
        {
            eventSource.TestEvent += new ee.weituo(KeyPressed);
        }
        public void UnSubscribe(ee eventSource)
        {
            eventSource.TestEvent -= new ee.weituo(KeyPressed);
        }
    }

    public class Test
    {
        public static void Main()
        {
            ee es = new ee();
            // 创建侦听对象/接受事件对像
            zz el = new zz();
            Console.WriteLine("开始订阅事件\n");
            el.Subscribe(es);

            Console.Write("输入一个字符,再按Enter键:");
            string s = Console.ReadLine();
            es.RaiseEvent(s.ToCharArray()[0]);
            Console.WriteLine("\n开始取消订阅事件\n");
            el.UnSubscribe(es);
            Console.Write("输入一个字符,再按Enter键:");
            s = Console.ReadLine();
            es.RaiseEvent(s.ToCharArray()[0]);
            Console.ReadKey();
        }
    }
}
--------------------编程问答--------------------


//下面这部是为匿名对象eventSource的事件TestEvent注册方法KeyPressed,
//你可以为事件注册多个方法
eventSource.TestEvent += new ee.weituo(KeyPressed);




--------------------编程问答-------------------- protected virtual void OnTestEvent(ff e)
  {
  if (TestEvent != null)
  TestEvent(this, e);
  }
委托执行
public void RaiseEvent(char aa)
  {
  ff e = new ff(aa);
  OnTestEvent(e);
  }
  }
事件
eventSource.TestEvent += new ee.weituo(KeyPressed);
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,