将List传递给函数(object sender,EventArgs e)
本文关键字:sender EventArgs object List 函数 | 更新日期: 2023-09-27 18:21:44
我有一个函数RadioButtonList_SelectedIndexChanged
,在这个函数中我创建了一个列表,我想将列表传递给另一个函数:DropDownList_SelectedIndexChanged(object sender, EventArgs e)
我怎样才能做到这一点?
您有两种可能的解决方案:
将List对象作为事件发送者发送(不推荐)
您可以利用事件处理程序采用object
参数的优势,该参数是事件的发送方。您可以使用此参数在您的列表中传递:
DropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
// You'll have to downcast the object
List<string> myList = sender as List<string>;
}
您可以从单选按钮事件处理程序中这样调用它:
RadioButtonList_SelectedIndexChanged(obejct sender, EventArgs e)
{
// ...
DropDownList_SelectedIndexChanged(yourCreatedList, null);
}
不建议这样做,因为这个参数应该包含sender对象,在您的情况下,它是您的单选按钮,而不是列表。
创建您自己的EventArgs(推荐)
您可以创建自己的EventArgs
:实现
public class DropDownListEventArgs : EventArgs
{
public List<string> List;
}
然后,您应该修改您的事件处理程序签名:
DropDownList_SelectedIndexChanged(object sender, DropDownListEventArgs e)
{
List<string> myList = e.List;
}
您可以从单选按钮事件处理程序中这样调用它:
RadioButtonList_SelectedIndexChanged(obejct sender, EventArgs e)
{
// ...
DropDownList_SelectedIndexChanged(yourRadioButton, new DropDownListEventArgs()
{
List = yourCreatedList
});
}
p.S.:我假设您的列表是List<string>
类型,但它可以是任何类型。
在代码后面创建私有List变量,从数据库中检索更改为该变量的radiobutton上的数据,然后只在dropdownlistrongelectedindexchanged函数中使用该变量。我认为这比使用(object sender,EventArgs e)进行操作要好;
private List list1;