Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以创建这样派生的抽象基类UserControl。ascx必须实现某些控件吗?_C#_Asp.net_Inheritance_User Controls - Fatal编程技术网

C# 我可以创建这样派生的抽象基类UserControl。ascx必须实现某些控件吗?

C# 我可以创建这样派生的抽象基类UserControl。ascx必须实现某些控件吗?,c#,asp.net,inheritance,user-controls,C#,Asp.net,Inheritance,User Controls,我的情况是,我有一个控件,它被实现来处理两种不同的类型。因此,在一些方法中,我有if(controlType==“Type1”) ... 否则…我想将其拆分为两个不同的控件,并使用一个基类来处理这两个控件的常见操作。这两个控件也有相同的标记,所以我想在基类中处理控件事件,但设计者似乎把我搞砸了。我几乎觉得自己是一个普通的。ascx很完美,但我不知道从哪里开始。过去,我尝试过各种继承和用户控件的方法,包括一个ascx从另一个ascx继承,回顾过去,我觉得不值得麻烦,因为维护它往往有点头疼 从一个公

我的情况是,我有一个控件,它被实现来处理两种不同的类型。因此,在一些方法中,我有
if(controlType==“Type1”)
...

否则…
我想将其拆分为两个不同的控件,并使用一个基类来处理这两个控件的常见操作。这两个控件也有相同的标记,所以我想在基类中处理控件事件,但设计者似乎把我搞砸了。我几乎觉得自己是一个普通的。ascx很完美,但我不知道从哪里开始。

过去,我尝试过各种继承和用户控件的方法,包括一个ascx从另一个ascx继承,回顾过去,我觉得不值得麻烦,因为维护它往往有点头疼

从一个公共基类继承两个ascx控件可以解决问题,但我也发现处理基类中的事件变得很困难。最后,我只是从事件中调用基类中的方法。您必须在两个控件中处理事件,但至少人们可以在2年后遵循代码

通用ascx将非常棒,并且可能:

尽管这是一个聪明的解决办法,但由于EDI不直接支持它,我怀疑它最终会增加维护问题

我知道这可能不是您想要的答案,但如果(controlType==“Type1”)有丑陋的
if(controlType==“Type1”)
代码,尽管感觉不雅观,但最终可能是最容易维护的,因为Visual Studio本身并不支持用户控件的继承


祝你好运,如果你找到一个优雅的解决方案,请告诉我

设计师是怎么把事情搞砸的?谢谢,我浪费了一整天的时间在顶部链接上