日期:2014-05-18  浏览次数:20877 次

如何简化下面的代码?
如何对下面的代码进行一下简化呢?

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,实现,重载