求一个事件代码的实现方式

来源:百度知道 编辑:UC知道 时间:2024/06/21 08:34:02
classs A 需要使用一个事件 让A所有的实例都可以互相交换信息;
比如以下伪代码:
class A{
bool status = flase;
arrarylist neighour =new arrarylist;//A的邻居
事件1:当A.status 由false变成true时,向neighour所有的A instance sayhello();
事件2:当A的任何一个实例收到hello时,把对方记录在neighour表中;
}
实际代码如何实现?

using System.Text;
using log4net;
using System.Threading;

namespace net.emice.PSTN.ChannelSoft
{
//事件参数,自己可以像参数里加N个参数
public class EvtCTIClientArgs : System.EventArgs
{
private int ClientStatus;
public int clientStatus
{
get
{
return ClientStatus;

}
}
//参数实例时候必须给定里面的值
public EvtCTIClientArgs(int clientStatus)
{
ClientStatus = clientStatus;
}
}

//定义委托
public delegate void CTIClient(object sender, EvtCTIClientArgs args);
public class AgentBarBackend
{

//自定义事件
public event CTIClient EvtCTIClient;

//事件触发 当需要触发事件时候调用这个方法
private void RaiseEvtCTIClient(EvtCTIClientArgs args)
{
if (null != EvtCTIClient)