我创建了一个 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);
}
您只能从其自己的类中调用事件。这不是问题,因为否则会导致非常混乱的代码。始终检查它是否为空,因为如果没有订阅者,它将为空,并且NullReferenceException
在您调用它时将通过 a 。