定义属性标志位FLAG 当FLAG值发生改变时 根据相应的值执行相应的代码
public delegate void SetTextHandler(int textid, string strInfo);
//定义一个委托
private delegate void MyFlagChanged(object sender, EventArgs e);
//定义一个委托关联的事件
private event MyFlagChanged onFlagChanged;
//设置属性标志位 监听GPS打开与关闭
private static int closeFlag;
public int m_Flag
{
get { return m_Flag; }
set
{
//如果值改变
if (value != m_Flag)
{
m_Flag = value;
WhenFlagChange();
}
}
}
onFlagChanged += new MyFlagChanged(DoEvent_BeforeFlagChanged);//注册事件
//Flag属性被修改事件 触发函数
protected virtual void WhenFlagChange()
{
EventArgs e = new EventArgs();
if (onFlagChanged != null)
{
onFlagChanged(this, e);
}
}
//事件处理函数,Flag改变后 根据Flag值进行相应操作
private void DoEvent_BeforeFlagChanged(Object sender, EventArgs e)
{
if (m_Flag == 0)
{
//Flag ==0时执行
}
else
{
// Flag!=0时 执行
}
}