将事件添加到方法
本文关键字:方法 添加 事件 | 更新日期: 2023-09-27 18:24:52
我创建了一个HTTP类,如果可能的话,每次调用HTTP.post()或HTTP.get()时我都会附加一个方法。我希望能够在活动之前或之后附加活动。
我在很多网络框架中看到了这一点,比如Wordpress和Symfony,但我想在我的WinForms应用程序上做一些类似的事情。
我在寻找什么设计模式来实现这一点,这样我就可以去谷歌了。
您可以在对象上创建事件,并从代码中的任何位置调用它们。我经常这样做。
public event EventHandler Getting;
public event EventHandler Setting;
void get()
{
if (Getting != null)
Getting.Invoke(this, EventArgs.Empty);
}
void post()
{
if (Setting != null)
Setting.Invoke(this, EventArgs.Empty);
}
然后其他类可以像这样处理这些事件:
myHttp.Getting += myHttp_Getting;
public void myHttp_Getting(object sender, EventArgs e)
{
}
编辑:
您也可以调用这样的事件:
void post()
{
if (Setting != null)
Setting(this, EventArgs.Empty);
}
只能从事件自己的类中调用事件。这不是一个问题,因为如果不这样做,代码会非常混乱。始终检查它是否为null,因为如果没有订阅者,它将为null,并且在您调用它时将通过NullReferenceException
。