C#以Delegate的形式支持第一类函数.
请注意,在您的情况下,事件是侦听器样式范例的基础.
例如,表格:
public class Form1
[--snip--]
public event EventHandler Closed;
public event EventHandler Clicked;
Run Code Online (Sandbox Code Playgroud)
另一个想要修改该表单的类:
public class Other
{
public static void CloseHandler(object sender, EventArgs e)
{
Console.WriteLine("Closed");
}
public static void Main(string[] args)
{
Form1 form = new Form1();
form.OnClose += CloseHandler;
form.OnClick += (s,e) => Console.WriteLine("Click");
}
}
Run Code Online (Sandbox Code Playgroud)
当窗体关闭时,这(禁止语法错误)应该打印到控制台"关闭".单击表单时单击"单击".请注意,我排除了执行调用以保持简单的代码.
另请注意,C#中的事件通常被命名为用于中断事件的现在时(在操作之前发生)和用于事件事件的过去时(在操作之后立即发生).您通常还有一个OnClosed或类似的允许继承类来覆盖功能而不附加事件,更不用说允许中心位置来避免null问题.
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |