我想为我的一些自定义UserControl
提供抽象基类。原因很明显:它们共享一些共同的属性和方法(实际上是一个接口的某些元素的基本实现),我只想实现它们一次。Visual Studio:设计一个派生自抽象基类的UserControl类
我已经定义我的抽象基类,这样做:
public abstract class ViewBase : UserControl, ISomeInterface
然后我去实现我的意见之一,像往常一样,与设计师:
public partial class SpecialView : UserControl //all OK
到这里全部很好。现在我与抽象基类取代我SpecialView
类的推导:
public partial class SpecialView : ViewBase //disrupts the designer
现在,在Visual Studio 2008的设计就不管用了,他说:The designer must create an instance of type 'ViewBase' but it cannot because the type is declared as abstract.
我如何规避这个?我只是不想为所有这些视图复制相同的代码。
信息:有一个问题question with virtual methods,而不是抽象类,但没有适合我的解决方案。
??其实,我不想重写,我想要一个我可以继承的实现。我可以在具有实现的基类中使用虚拟方法吗? – Marcel 2010-05-05 08:17:33
最后,我完成了像提议的那样。 – Marcel 2010-10-11 15:17:00
@Moe我可以在基类中拥有一个虚拟方法吗?虚拟方法可以具有可以被覆盖的实现。如果没有抽象/虚拟方法,为什么选择抽象基础?在这种情况下使用非抽象的基础就好了。你失去的唯一的事情就是你可以在这种情况下创建一个基础实例。使用ABC你将无法做到。 – MPavlak 2012-05-17 13:06:22