自定义用户控件使用相同的方法,以相同的方式调用它们
作者:互联网
因此,我在项目中制作了一堆用户控件,这些控件自动集成到系统中,以跟踪有关它们的某些信息.但是我不确定如何在不显得非常丑陋的情况下完成某个部分.
所有控件都从不同的控件类型(面板,文本框,组合框等)扩展而来,但是具有几种完全相同的方法.
我想做的是避免这种情况:
public void SendMyMessage(Control thisControl)
{
if(thisControl is myPanel) (thisControl as myPanel).SendMessage();
else if(thisControl is myComboBox) (thisControl as myComboBox).SendMessage();
else if(thisControl is myTextbox) (thisControl as myTextbox).SendMessage();
else if(thisControl is myLabel) (thisControl as myLabel).SendMessage();
}
宁愿有一个更简单的方法,让我在1行中调用它. (请注意,我正在调用的SendMessage()函数在不同的控件上执行不同的操作,但是不需要参数,并且以相同的方式调用)
解决方法:
我建议在所有控件中实现类似IMessageSender接口的东西.因此,您只有一张支票:
if (thisControl is IMessageSender)
(thisControl as IMessageSender).SendMessage();
界面如下所示:
public interface IMessageSender
{
void SendMessage();
}
标签:reflection,user-controls,c 来源: https://codeday.me/bug/20191101/1987156.html