今天总结了下。事件 注册方法,有一个不太明白,望指教

言多必失 2012-06-20 09:31:03

this.button1.Click += new System.EventHandler(this.button1_Click);
button1.Click += new EventHandler(delegate(object sender, EventArgs e) { MessageBox.Show("匿名方法"); });
button1.Click += button1_Click;//事件需要委托,委托实质方法
button1.Click += delegate(object sender, EventArgs e) { MessageBox.Show("匿名方法"); };
button1.Click += delegate
{
MessageBox.Show("匿名方法"); //怎么获取参数
};
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("命名方法");
}

大概5种写法, 不明白
button1.Click += delegate
{
MessageBox.Show("匿名方法"); //怎么获取参数
};
这样不明白是原因,怎么获取参数?object sender, EventArgs e。
...全文
150 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
SocketUp 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

引用 10 楼 的回复:
唉,发现缺少一个最原始的方法啊

什么方法啊? 看清楚在回答啊。
[/Quote]

最原始的写法,当然是消息循环了
gavinmark 2012-06-20
  • 打赏
  • 举报
回复
跟着学习
杨友山 2012-06-20
  • 打赏
  • 举报
回复

button1.Click += delegate
{
MessageBox.Show("匿名方法"); //怎么获取参数
};



这种匿名方法是没有参数的啦,所以是不能获取sender和e的。
宝_爸 2012-06-20
  • 打赏
  • 举报
回复
button1.Click += delegate(object sender, EventArgs e) { MessageBox.Show("匿名方法"); };
button1.Click += delegate
{
MessageBox.Show("匿名方法"); //怎么获取参数
};
都是匿名方法。

bdmh 2012-06-20
  • 打赏
  • 举报
回复
button1.Click += delegate,这是匿名方法
宝_爸 2012-06-20
  • 打赏
  • 举报
回复
不需要访问参数的时候这么写,
需要访问的话,用这个 button1.Click += delegate(object sender, EventArgs e) { MessageBox.Show("匿名方法"); };
言多必失 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
唉,发现缺少一个最原始的方法啊
[/Quote]
什么方法啊? 看清楚在回答啊。
言多必失 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
还有第六种写法,而且是不能把参数省掉的写法:

C# code
button1.Click += (sender, e) => { MessageBox.Show("匿名方法"); };
[/Quote]

确实,匿名方法和lamba表达式。
SocketUp 2012-06-20
  • 打赏
  • 举报
回复
唉,发现缺少一个最原始的方法啊

qldsrx 2012-06-20
  • 打赏
  • 举报
回复
还有第六种写法,而且是不能把参数省掉的写法:
button1.Click += (sender, e) => { MessageBox.Show("匿名方法"); };
wanghhyang123 2012-06-20
  • 打赏
  • 举报
回复
书写更快捷
__天涯寻梦 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
匿名方法知道的,但是 不明白是原因,怎么获取参数? 既然不能给获取参数,这样设计为什么成立?有button1.Click += delegate(object sender, EventArgs e) { MessageBox.Show("匿名方法"); };
这样就够了啊。
[/Quote]
参数可以用也可以不用,假如不需要用,可以简便些写不带上参数,节省点代码量,算是一个便利
button1.Click += delegate
{
MessageBox.Show("匿名方法"); //怎么获取参数
};
言多必失 2012-06-20
  • 打赏
  • 举报
回复
匿名方法知道的,但是 不明白是原因,怎么获取参数? 既然不能给获取参数,这样设计为什么成立?有button1.Click += delegate(object sender, EventArgs e) { MessageBox.Show("匿名方法"); };
这样就够了啊。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧