如何避免重复编码,提高效率
本文关键字:提高效率 编码 何避免 | 更新日期: 2023-09-27 18:07:08
我有一个DataGrid
view1和一个ListView
,当我选择列表视图项目时(我将ListView
项目传递到查询中并根据该项目填充DataGrid
视图)
我写了一些像这样的代码....
private void listview_selectedindexchanged(object sender event args)
{
if (listview.SelectedItems.Count > 0 && listview.SelectedItems[0].Group.Name == "abc")
{
if(lstview.SelectedItems[0].Text.ToString() == "sfs")
{
method1();
}
else
{
// datagrid view1 binding
blah.....
}
}
if (lstview.SelectedItems.Count > 0 && lstview.SelectedItems[0].Group.Name == "def")
{
if(lstview.SelectedItems[0].Text.ToString() == "xyz")
{
method 1();
}
if(lstview.SelectedItems[0].Text.ToString() == "ghi")
{
method 2(a,b);
}
if(lstview.SelectedItems[0].Text.ToString() == "jkl")
{
method 2(c,d);
}
if(lstview.SelectedItems[0].Text.ToString() == "mno")
{
method 3();
}
}
}
private void method 1()
{
// datagrid view1 binding
blahh
}
private void method 2(e,g)
{
// datagrid view1 binding
blah....blah..
}
private void method 3()
{
// datagrid view1 binding
}
我已经像上面那样做了……我认为这不是一种高效的编码方式。这段代码由很多重复的行组成,有没有办法将这段代码折射成一小部分代码......为了提高效率?
任何提高代码效率的想法和示例片段都会对我有帮助…
Many thanks advance....
我正在使用c#编写WinForms应用程序.....
您可以将委托保存到listview项中。并在封装项被选中时调用它。例如,你可以这样填充你的列表框:
ListViewItem item = new ListViewItem("abc");
item.Tag = new Delegate(method1);
lstview.Items.Add(item);
现在,当这个项目被选中时,像这样执行方法:
private void listview_selectedindexchanged(object sender event args)
{
((Delegate)lstview.SelectedItems[0].Tag)(); // this will execute method1 if the item with text "abc" gets selected
}
注意:!我还没有测试过这段代码,但是沿着这些行应该可以工作,并且您不必编写if语句,您只需要正确地构造这些项。
还要注意的是,对于不熟悉这段代码的人来说,这可能有点难以阅读。
您可以轻松地提取一个新方法来执行"datagrid view1绑定"。然后从需要执行绑定的所有方法中调用此方法。