如何在C#中编写事件和事件处理程序?

6

我一直在尝试找到一种好的方法来记忆如何在C#中编写事件和事件处理程序。每当我想在互联网上查找教程时,它们往往都很冗长。

问题是如何在C#中编写事件和事件处理程序?你有一个简单易懂的代码示例吗?

2个回答

13

它们不必冗长:

// declare an event:
public event EventHandler MyEvent;

// raise an event:
var handler = MyEvent;
if(handler != null) handler(this, EventArgs.Empty);

// consume an event with an anon-method:
obj.MyEvent += delegate { Console.WriteLine("something happened"); };

// consume an event with a named method:
obj.MyEvent += SomeHandler;

void SomeHandler(object sender, EventArgs args) {
    Console.WriteLine("something happened");
}

哪一位是有问题的?


1
+1。我知道你或Jon中的一个会比我更快地回答并给出更好的答案。 - Dead account
2
有些麻烦的是所有教程都倾向于描述委托,但我只想要一个快速参考。 - Spoike
我笑了,“something happened” 的提示信息!那个著名的 Windows 10 安装错误信息 :) - Dexter

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接