事件可以说是C#中性价比极高的知识,那如何使用事件呢?
假如我想要点击窗口1中的按钮弹出窗口2,然后点击窗口2中的按钮使得原来的窗口1背景色改变
这里就会用到事件。
首先我们如果要使用事件就要对事件有清楚的认识。
举个例子,假如你是一个典狱长,你想要监视一个犯人,如果这个犯人靠近监狱的门就让你的小弟去警告他。
在这个例子里面,犯人就是被监视的类,事件就是犯人靠近监狱门,你就是事件触发后作出相应反应的类。
可以把事件看成灯的开关,当你按下灯的开关后,事件就被触发,灯泡则根据开关的状态选择亮起或熄灭。
回到刚开始的修改背景色问题,要怎么实现代码呢?
- 定义事件(相当于先在犯人的房间里装好摄像头)
- 监听事件
- 触发事件
- 响应事件
创建一个Form1,界面上添加一个按钮
再创建一个form2,然后在form1的按钮上创建form2show出来
form2定义一个事件(<>内部是事件抛出的信息,这里抛出了一个int对象和一个string对象,closeAction是事件的名字)Action表示有参数但是没有返回值的事件
public Action<int,string> CloseAction;
form2中添加一个按钮,在按钮点击代码中添加下面这一句(触发(抛出)事件)
CloseAction?.Invoke(3, "hello");
这一句代码中的?的作用是抛出