c# – 过度使用switch语句开销
发布时间:2020-12-15 21:46:12 所属栏目:百科 来源:网络整理
导读:我有xml文件,其中包含必须在html控件上执行的特定步骤和操作: Item control="Dropdown" action="Click" value=""/Item control="Button" action="GetText" value=""/Item control="Input" action="WriteText" value="Sample Text"/ 我将使用很多控件,每个控
我有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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |