读书人

怎么简化下面的代码

发布时间: 2012-04-12 15:46:35 作者: rapoo

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

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

读书人网 >C#

热点推荐