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#