我必须设计一个接口,使其实现者(某些派生类)必须覆盖其基类的特定虚方法。我所衍生的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
的实施的说明符?
更新有关我的实施的详细信息:
我有一些类(DomainObject1
,DomainObject2
...)继承自名为DomainObject
的基类,后者又能够通过附加的验证规则验证其属性。我想要每个域对象类型的集合,例如:DomainObject1Collection
,DomainObject2Collection
等。所以我从BusinessCollectionBase
得到BindingList(of T)
,如下所示:
Public MustInherit Class BusinessCollectionBase(of T as DomainOBject)
Inherits BindingList(of T)
请注意,它的类型约束为DomainObject
,因此派生集合仅支持从DomainObject
派生的项目。
我希望我的BusinessCollectionBase
覆盖其基本InsertItem
方法,以便将验证规则附加到新插入的项目。
因此BussinessCollectionBase
应该实现一个接口,该接口声明在插入项时检索和附加验证规则的方法。创建这些规则的代码位于派生集合中,因为不同的集合类型具有不同的规则。
当规则指定的某些属性发生更改时,域对象将调用这些规则验证,但规则在集合中声明,因为它们与它相关,例如:域对象在集合中应该是唯一的,检查何时对象的任何属性都会改变。