永发信息网

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是其属性之一。

  • 3楼网友:青尢
  • 2021-07-20 23:49

sender 是已经定义好的基类,

EventArgs e 是当前空间的事件的参数

里面的参数有时需要优势不需要

例如要得到坐标 就要用到 e

DropDownList1 是一个控件

SelectedValue是方法

  • 4楼网友:由着我着迷
  • 2021-07-20 23:17

回答者所回答的不全对...

sender,顾名思义--发送者,也就是事件的发起者,也就是事件是从哪里发出来的..

比如button_click(sender ,e)事件,如果你把sender作为一个Button来使用的话,是完全可以了

一般使用不到,但这是规范.

然后button_click(sender ,e){} 说白了也就是一个方法(函数),它只是一个事件响应时所需要执行的东西,参数与一般方法没什么两样

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯