c#参数传递
答案:5 悬赏:20 手机版
解决时间 2021-07-21 02:01
- 提问者网友:骑士
- 2021-07-20 22:13
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Label5.Text = DropDownList1.SelectedValue.ToString();
Label6.Text = DropDownList1.SelectedItem.ToString();
}
上面代码中有疑惑,请高手帮忙回答,谢谢~
1 参数sender是不是已经在类库定义好的基类,并被隐藏了?
2 如何理解EventArgs e?
3 这里的参数是否可有可无?什么情况下必须有参数?
4 DropDownList1.和SelectedValue.是两个类吗?
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-07-20 22:31
多多理解 什么是 类, 什么是对象:
1.sender不是类,它是Object的一个对象。要求调用这个方法时传递的参数是Object类型的一个实例。(大多数传递的是和触发事件相关的对象实例)
2.EventArgs 同样是一种类型 e 是这种类型的一个实例。它定义了和事件有关的参数。也就是触发事件时附带和事件有关的信息(大多是属性 如 e.RowIndex, RowIndex 就是 EventArgs类中定义的一个属性)当我们在处理事件时 ( protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
就是事件的处理程序 ) 可以使用和事件绑定的一些信息 e
3.事件参数(说明:是事件处理程序的参数) 是和事件定义时的参数一致的。事件定义的参数什么样,处理程序的参数就必须什么样。
4.同样 DropDownList1 是 DropDownList (类)的一个实例。 SelectedValue 是取这个实例的 值。(它是DropDownList (类)中定义的一个属性)
全部回答
- 1楼网友:西风乍起
- 2021-07-21 01:46
--------------------------------------
我补充点东西:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Label5.Text = DropDownList1.SelectedValue.ToString();
Label6.Text = DropDownList1.SelectedItem.ToString();
}
你这个事件现在是只有DropDownList1才触发。所以可以这样写。
如果还有个DropDownList2也是这样的话。你就这样写
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl=(DropDownList)sender;
Label5.Text = ddl.SelectedValue.ToString();
Label6.Text = ddl.SelectedItem.ToString();
}
你的写法是触发这个事件时把DropDownList1的值显示出来。与触发事件的对象无关。
而我的写法是把触发事件对象的值显示出来。
当触发事件对象是DropDownList1时效果和你一样。
而如果是DropDownList2的话,你的依然显示DropDownList1的值,而我的是显示DropDownList2的值。
明白?
------------------------
- 2楼网友:渡鹤影
- 2021-07-21 00:39
object sender它很明确就是system.object这个基类的一个实例。
EventArgs e 是事件对象的参数,其内容因事件的性质而有不同。
事件处理函数是否需要取决于你怎么去处理事件,但是尽管不需要,你也必须在书写函数时把他们带上不得忽略。
DropDownList1是一DropDownList控件实例,SelectedValue是其属性之一。
sender 是已经定义好的基类,
EventArgs e 是当前空间的事件的参数
里面的参数有时需要优势不需要
例如要得到坐标 就要用到 e
DropDownList1 是一个控件
SelectedValue是方法
- 4楼网友:由着我着迷
- 2021-07-20 23:17
回答者所回答的不全对...
sender,顾名思义--发送者,也就是事件的发起者,也就是事件是从哪里发出来的..
比如button_click(sender ,e)事件,如果你把sender作为一个Button来使用的话,是完全可以了
一般使用不到,但这是规范.
然后button_click(sender ,e){} 说白了也就是一个方法(函数),它只是一个事件响应时所需要执行的东西,参数与一般方法没什么两样
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯