如何简化下面的代码?
如何对下面的代码进行一下简化呢?
- C# code
if (text == "称重数据高级维护") { if (Application.OpenForms["AA"] == null) { CAA aa= new CAA(); CreateFormPanel(aa, true); } else { ToSelect(((Form)Application.OpenForms["AA"])); } } //frmTempDataAdvancedMaintenance if (text == "临时数据高级维护") { if (Application.OpenForms["BB"] == null) { CBB bb= new CBB(); CreateFormPanel(bb, true); } else { ToSelect(((Form)Application.OpenForms["BB"])); } }
像上面的If。。。else有20多个,我想能不能做一个类,用foreach循环来直接进行处理呢?
其中CAA和
CBB都是继承自一个同一个类的窗口控件!
[解决办法]
首先你这个text 应该每次只有一个值吧,那就应该用 if...else if...else if,不要每个条件都用单独的if
你可以封装到一个类里面,单独处理,做一个反省类,不就是frmTempDataAdvancedMaintenance 之类的不同吗,如果都是同一个类型,比如窗体,那就完全可以做成一个<T>泛型啊
[解决办法]
用委托。典型的策略模式。
[解决办法]
我是用switch case
[解决办法]
abstract,实现,重载