您的位置:首页 > 编程语言 > C#

c# 事件和委托

2018-08-22 16:55 323 查看

 

public static string str = string.Empty;
private void Border_MouseLeftButtonUp_3(object sender, MouseButtonEventArgs e)
{
/* 实例化对象,第一次没有触发事件, 因为对象中的 ChangeNum 事件没有绑定(注册)事件*/
EventTest es = new EventTest();
es.SetValue();
subscribEvent v = new subscribEvent();
/* 注册事件:将 subscribEvent 类中的普通方法绑定(注册)到 EventTest 类中定义的 ChangeNum 事件。*/
es.ChangeNum += new EventTest.NumManipulationHandler(v.printf);
es.SetValue();
}

#region 事件
/***********发布器类***********/
public class EventTest
{
public delegate void NumManipulationHandler();
public event NumManipulationHandler ChangeNum;
public void OnNumChanged()
{
if (ChangeNum != null)
{
/* 事件被触发,执行与事件绑定(注册)的方法*/
ChangeNum();
}
else
{
str += "事件没有被触发!";
}
}
public EventTest()
{
SetValue();
}
public void SetValue()
{
OnNumChanged();
}
}
/***********订阅器类***********/
public class subscribEvent
{
/*普通方法*/
public void printf()
{
str += "触发了事件!";
}
}
#endregion

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: