强制接口实现者覆盖基类方法

时间:2014-10-23 06:46:06

标签: vb.net

我必须设计一个接口,使其实现者(某些派生类)必须覆盖其基类的特定虚方法。我所衍生的BaseClass无法修改为设置" MustOverride"该方法的说明符。

   ' interface
   Interface IFooBar

      Sub SomeMethod()

   End Interface


   ' base class
   Class FooBase

      Protected Overridable Sub SomeMethod()
         ' base code
      End sub

   End Class


   ' derived class
   Class FooBar
      Inherits FooBase
      Implements IFooBar


      Protected Overrides Sub SomeMethod() Implements 
                                   IFooBar.SomeMethod
         ' code
      End Sub
   End Class

我如何执行" Overrides"关于IFooBar.SomeMethod的实施的说明符?

更新有关我的实施的详细信息:

我有一些类(DomainObject1DomainObject2 ...)继承自名为DomainObject的基类,后者又能够通过附加的验证规则验证其属性。我想要每个域对象类型的集合,例如:DomainObject1CollectionDomainObject2Collection等。所以我从BusinessCollectionBase得到BindingList(of T),如下所示:

Public MustInherit Class BusinessCollectionBase(of T as DomainOBject) Inherits BindingList(of T)

请注意,它的类型约束为DomainObject,因此派生集合仅支持从DomainObject派生的项目。 我希望我的BusinessCollectionBase覆盖其基本InsertItem方法,以便将验证规则附加到新插入的项目。  因此BussinessCollectionBase应该实现一个接口,该接口声明在插入项时检索和附加验证规则的方法。创建这些规则的代码位于派生集合中,因为不同的集合类型具有不同的规则。 当规则指定的某些属性发生更改时,域对象将调用这些规则验证,但规则在集合中声明,因为它们与它相关,例如:域对象在集合中应该是唯一的,检查何时对象的任何属性都会改变。

0 个答案:

没有答案