c#中事件的本质就是函数吗?如单击事件

privatevoidbutton1_Click(objectsender,EventArgse){}看起来好像带两个参数的函数顺便给我解释下括号里的那几个单词是什么意思... private void button1_Click(object sender, EventArgs e)
{
}
看起来好像带两个参数的函数
顺便给我解释下括号里的那几个单词是什么意思
展开
 我来答
cdinten
2014-12-05 · TA获得超过6588个赞
知道大有可为答主
回答量:3562
采纳率:56%
帮助的人:1293万
展开全部
事件是由对象监听的,本质上是C#中的代理,或者叫做委托,button1.Click += new EventHandler(button1_Click);中,Click是一个委托,该委托在Click行为发生的时候会广播,对于广播链中的函数,亦即事件处理函数,则采取相应的操作。你这里的就是事件处理函数,该函数带两个参数,一个是类型为object的形参sender,相当于是这个函数的发出者,因为事件处理函数可能被多个事件注册,例如有多个Button按钮都注册了该事件处理函数,因此,你可以在代码中使用:
Button btn=(Button)sender;
将其转化为Button,再执行一些其他的操作,确定事件的发出者是谁。
而EventArgs则是事件参数的意思,即Event Arguments的缩写,e相当于是携带了这个事件的一些消息。对于一些事件,例如MouseDown、KeyPress等,其中携带有光标的坐标或者按下的键值等。
liuz_zp
2017-09-13 · TA获得超过299个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:96.1万
展开全部

一、事件的本质是委托的实例,为了对委托更好的封装而设计。

1、具有私有性,只能在拥有事件类内部执行调用函数

2、只能使用+= 和-=注册和移除函数。

二、委托的本质等于一个函数指针,可以注册一个或多个函数,并加以调用。委托和函数的签名必须保持一致。

-------------------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e)
{
//logic

}

这是一个函数,而不是事件。

button1.Click 才是事件,事件需要注册方法

例如 button1.Click += new EventHandler(button1_Click); (这里IDE控件已经自动完成注册了,不需要自己去写)

括号里的签名之所以那样写,是因为button1.Click事件是一个System.EventHandler委托的实例,所以函数的签名必须和System.EventHandler 的签名保持一致。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xjxzhmin
2014-12-05 · TA获得超过147个赞
知道小有建树答主
回答量:333
采纳率:100%
帮助的人:117万
展开全部
计算机干活是通过预先设计好的方法【即:函数】来执行的。这个button1_Click名字上有个Click字面意思是提示你为点击事件(这是微软预先设计好的,自定义的话可以随便定义)。括号里面有两个参数第一个参数为object类型意思是可以是任意值,一般是放本身触发事件按钮的本身;第二个参数:System.EventArgs 是包含事件数据的类的基类,这个你可以看看这个类;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
然后去远足
推荐于2017-11-27 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2356万
展开全部
事件是一种委托。你这个不是事件,只是一个名为 button1_Click() 的方法(函数)而已。

button1.Click 才是事件,事件需要绑定方法,例如 button1.Click += new EventHandler(button1_Click);,代表着 button1 的 Click 事件绑定到了 button1_Click() 方法上,或者说 button1_Click() 方法订阅了 button1 的 Click 事件。这样,当 button1 触发 Click 事件时,就会执行 button1_Click() 方法。

一个事件可以绑定多个方法,按照绑定的先后顺序依次执行。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jack87918
2014-12-05 · TA获得超过2048个赞
知道小有建树答主
回答量:1618
采纳率:100%
帮助的人:1435万
展开全部
c#中事件的本质是委托,不同的是定义事件时需要加上一个event标示,并且有一些特有的参数,如EventArg之类的。
注册事件的方法,是一个符合委托的函数。

括号里面的单词,自己去查词典吧。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式