微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 过度使用switch语句开销

我有xml文件,其中包含必须在html控件上执行的特定步骤和操作:

<Item control="Dropdown" action="Click" value=""/>
<Item control="Button" action="GetText" value=""/>
<Item control="Input" action="WriteText" value="Sample Text"/>

我将使用很多控件,每个控件都有几个方法,如Click,GetText,Exsists ..

目前我使用开关来处理它,但我听说这不是一个好习惯.我有一个开关来选择特定的控制,每个控件都切换到调用特定的方法.

switch (control)
            {
                case "button":
                    return new Button;
                case "table":
                    return new Table;
                (...)
            }

(...)


        switch (action)
        {
            case "click":
                this.Click();
                return true;
            case "gettext":
                this.GetText();
                return true;
            default:
                return false;
        }

我没有太多的编码经验,所以我不确定这是否是处理这个问题的好方法.你能给我一些建议怎么做得更好吗?也许有一些编码模式在这里有用吗?

解决方法

你可以为你拥有的每种控件创建一个

namespace SomeNamespace {
    class Button {
    }
    public void Click(){
    }
}

然后当你阅读XML

//assemblyName is the full name of the assembly holding your control classes
var type = System.GetType(assemblyName,"SomeNamespace." + control);
var control = Activator.CreateInstance(type); //requires a default constructor
type.getmethod(methodName).Invoke(control); //methodName Could be click

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐