C#数组方法帮助
有人能告诉我如何以更好、更优雅的方式重写下面的方法吗C#数组方法帮助,c#,methods,C#,Methods,有人能告诉我如何以更好、更优雅的方式重写下面的方法吗 // in class------------------ public static void RefreshAllDropdownlists(DropDownList ddlRemoveUsersFromRole, DropDownList ddlAddUsersToRole, DropDownList ddlAddAllUsersToRole, DropDownList ddlRemoveAllUsersFromRole, D
// in class------------------
public static void RefreshAllDropdownlists(DropDownList ddlRemoveUsersFromRole, DropDownList ddlAddUsersToRole, DropDownList ddlAddAllUsersToRole, DropDownList ddlRemoveAllUsersFromRole, DropDownList ddlDeleteAllUsersFromRole)
{
ddlRemoveUsersFromRole.ClearSelection();
ddlAddUsersToRole.ClearSelection();
ddlAddAllUsersToRole.ClearSelection();
ddlRemoveAllUsersFromRole.ClearSelection();
ddlDeleteAllUsersFromRole.ClearSelection();
}
// in codebehind------------------
UserGvUtil.RefreshAllDropdownlists(ddlRemoveUsersFromRole, ddlAddUsersToRole, ddlAddAllUsersToRole, ddlRemoveAllUsersFromRole, ddlDeleteAllUsersFromRole);
谢谢大家! 类似于
public static void RefreshAllDropdownlists(params DropDownList[] dropDownLists)
{
if (dropDownLists != null)
foreach (var ddl in dropDownLists)
ddl.ClearSelection();
}
?您可以将DropDownList对象列表传递给函数,然后可以执行以下操作:
public static void RefreshAllDropdownlists(List<DropDownList> lists)
{
foreach(DropDownList dropDown in lists)
{
dropDown.ClearSelection();
}
}
公共静态无效刷新所有下拉列表(列表)
{
foreach(列表中的下拉列表)
{
dropDown.ClearSelection();
}
}
使用params
参数修饰符传递DropDownList
s数组:
public static void RefreshAllDropdownlists(params DropDownList[] dropDownLists)
{
foreach (DropDownList ddl in dropDownLists)
{
ddl.ClearSelection();
}
}
用法与您当前的方法相同在我看来相当不错。重写代码会有什么好处?它做你想做的。@Alastair Pitts,有了这段代码,每次他想刷新另一个DDL时,都必须修改这个方法……太棒了,谢谢!这正是我的目标,但无法理解语法。
var listsToRefresh = new List<DropDownList>
{
ddlRemoveUsersFromRole,
ddlAddUsersToRole,
ddlAddAllUsersToRole,
ddlRemoveAllUsersFromRole,
ddlDeleteAllUsersFromRole
};
listsToRefresh.ForEach(l=>l.ClearSelection());
public static class DropDownListExtensions
{
public static void Reset(this DropDownList dropDownList)
{
dropDownList.ClearSelection();
//... do more stuff
}
}
listsToRefresh.ForEach(l=>l.Reset());