【问题标题】:How does addition assignment operator behave加法赋值运算符如何表现
【发布时间】:2015-09-30 06:54:10
【问题描述】:

加法赋值运算符在这里如何表现 -

btn.Click += delegate(object sender, EventArgs e)

【问题讨论】:

  • 我明白 x+= y 的意思是 x = x + y,但是事件呢
  • 这是在 c# 中为 btn.click 事件分配事件处理程序的方式
  • 这是我在 Google “c sharp += delegate” 中输入的内容,以及我在第二个链接 C# - Delegates 部分中得到的内容:“委托的多播” - 委托对象可以使用“+”运算符组成。一个组合的委托调用它组成的两个委托。只能组成相同类型的委托。 “-”运算符可用于从组合委托中删除组件委托。 老实说,这纯粹是懒惰。
  • 这就是所谓的匿名方法吗?

标签: c# asp.net csharpcodeprovider


【解决方案1】:

它将事件处理程序添加到事件Click。 当Click 事件引发时,添加到它的所有处理程序方法都会被调用。

例如:

void BtnClickHandler1(object sender, EventArgs e)
{
    MessageBox.Show("BtnClickHandler1");
}

void BtnClickHandler2(object sender, EventArgs e)
{
    MessageBox.Show("BtnClickHandler2");
}

然后将这些方法添加到 Click 事件中,如下所示:

btn.Click += BtnClickHandler1
btn.Click += BtnClickHandler2

当按钮被点击时,方法会按照你添加它们的顺序被调用,所以消息框会是:

BtnClickHandler1
BtnClickHandler2

如果您想了解有关 += 运算符的具体信息,MSDN 说:

+= 运算符还用于指定将被调用的方法 响应事件;此类方法称为事件处理程序。这 在这种情况下使用 += 运算符称为订阅 参加一个活动。

更多信息请看:

https://msdn.microsoft.com/en-us/library/edzehd2t%28v=vs.110%29.aspx

http://www.dotnetperls.com/event

【讨论】:

  • 它确实将事件处理程序连接到按钮的点击,但似乎我们可以在这里编写内联代码
  • btn.Click += delegate(object sender, EventArgs e) { lblResult.Text = DateTime.Now.ToString(); };
  • 你说的是Anonymous Methods,但它们不依赖于事件
猜你喜欢
  • 2021-11-02
  • 1970-01-01
  • 2015-08-23
  • 1970-01-01
  • 2012-10-31
  • 2011-08-02
  • 2019-10-06
  • 2011-11-16
  • 2015-04-07
相关资源
最近更新 更多