我希望为我的一些自定义UserControl创建一个抽象基类,与之相关的原因很明显:它们共享一些常见的属性和方法(实际上是接口的一些基本实现),我只想实现一次。
我通过定义我的抽象基类来实现这个目标:
现在,在Visual Studio 2008中的设计师已经无法工作了,提示:
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.
我该怎么解决?我不想为所有这些视图复制相同的代码。提示信息:有一个使用虚方法的问题,而不是抽象类,但对我来说没有合适的解决方案。