关于(object sender, System.EventArgs e)中参数sender和e的问题。
(1)请具体解释一下(objectsender,System.EventArgse)的含义。(2)既然在(objectsender,System.EventArgse)中...
(1)请具体解释一下(object sender, System.EventArgs e)的含义。 (2)既然在(object sender, System.EventArgs e)中sender和e都是参数,那么为什么每次在定义事件时它们都不变呢?我看到在很多事件代码中那些代码都是照写(object sender, System.EventArgs e),根本就不用改变sender和e,参数不是应该随实际情况变化的吗?
展开
1个回答
展开全部
您好,
具体的说来,对于系统提供的类的事件,Sender参数只是简单地传递了指向引发事件的那个类的实例的一个引用,而e是EventArgs类型的参数,它包含了事件所携带的信息。
至于第二个问题,我不是很明白“我看到在很多事件代码中那些代码都是照写(object
sender,
System.EventArgs
e),根本就不用改变sender和e,参数不是应该随实际情况变化的吗?”这句话的意思,比如说一个按钮控件,当它的单击事件被引发时,系统会自动把这个按钮对象作一个类型强制转换然后赋值给Sender,然后传递e。之所以都是这个形式是因为大多数情况下这些简单的事件不需要传递特殊的信息,您可以看一下KeyPress事件,这个事件就包含一个KeyPressEventArgs,包含了按键的信息。
另外需要明确的一个概念就是类似这样形式的方法:
private
void
Button_Click(object
sender,
EventArgs
e)
这样的方法称为事件处理方法,它类似于C语言中的事件处理函数,它是在运行时由系统调用的,因此它的参数不会变化,就好像我们写方法时的方法名一样。
希望这些信息对您有帮助。
具体的说来,对于系统提供的类的事件,Sender参数只是简单地传递了指向引发事件的那个类的实例的一个引用,而e是EventArgs类型的参数,它包含了事件所携带的信息。
至于第二个问题,我不是很明白“我看到在很多事件代码中那些代码都是照写(object
sender,
System.EventArgs
e),根本就不用改变sender和e,参数不是应该随实际情况变化的吗?”这句话的意思,比如说一个按钮控件,当它的单击事件被引发时,系统会自动把这个按钮对象作一个类型强制转换然后赋值给Sender,然后传递e。之所以都是这个形式是因为大多数情况下这些简单的事件不需要传递特殊的信息,您可以看一下KeyPress事件,这个事件就包含一个KeyPressEventArgs,包含了按键的信息。
另外需要明确的一个概念就是类似这样形式的方法:
private
void
Button_Click(object
sender,
EventArgs
e)
这样的方法称为事件处理方法,它类似于C语言中的事件处理函数,它是在运行时由系统调用的,因此它的参数不会变化,就好像我们写方法时的方法名一样。
希望这些信息对您有帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
网易云信
2023-12-06 广告
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询