请问C#事件处理程序说明

时间:2011-08-17 11:06:09

标签: c#

有人可以解释一下这段代码在做什么和如何工作?

RoleEnvironment.Chaning += RoleEnvironmentChaning;

private void RoleEnvironmentChanaing(object sender, RoleEnvironmentchaningnEventArgs e)
{
  ......
}

基本上,如果你能告诉我c#.net中事件处理的工作原理,将不胜感激。 感谢。

3 个答案:

答案 0 :(得分:2)

基本上就是说:只要RoleEnviroment决定触发“更改”事件,就调用该方法。 (我认为它应该是根据你的代码改变而不是Chaning或Chanaing。)

换句话说,C#中的事件是publisher/subscriberobserver模式的实现。

有关详细信息,请参阅我的article on events and delegates

答案 1 :(得分:2)

让我们暂时忘掉C#并考虑以下场景。 屏幕上有一个您希望用户单击的按钮,您不知道用户何时单击该按钮,您也不想经常检查用户是否单击了该按钮。您想要做的是在用户最终点击按钮时运行一些自定义代码。

欢迎参加活动或代表。

我们来看看按钮。 Button有一个Click事件,您可以将自定义代码挂钩到该事件上。 即。

//This happens in the designer
Button button = new Button();
button.Click += new EventHandler(YourMethod);

点击按钮后,现在将调用您的方法。

单击按钮会发生什么?有人会检查是否有订阅者

if(Click != null)
{
   Click(this, someEventArguments);
}

答案 2 :(得分:0)