【发布时间】:2010-11-16 01:43:06
【问题描述】:
我有一堆不同的表单,我想为其创建一个基本的MustInherit 类。我希望它们都包含的一个函数是一个名为GetForms() 的共享函数。我知道您不能声明共享函数MustOverride,所以我在抽象类中做了以下操作:
Public Shared Function GetForms() As List(Of OrderForm)
'to be overridden in child class'
Return Nothing
End Function
这在我的孩子班:
Public Overloads Shared Function GetForms() As List(Of OrderForm)
'do stuff'
End Function
这是否会导致问题,或者这是一个可接受的解决方法?它有一种味道,但它会强制我的所有表单都包含一个共享的 GetForms 函数。
编辑我意识到如果接口可以实现,我会使用一个,但你不能在接口中声明共享函数,我想确保这是一个共享函数。
【问题讨论】:
-
您对共享关键字的理解是什么?而且,你认为你为什么要使用它?
-
请在 scottE 的帖子下查看我的评论
-
您是否曾在这里找到解决问题的方法?
-
@hamlin11 不,我只是手动实现了共享函数,而不是通过任何类型的接口/继承来强制执行它们。蹩脚,但哦,好吧
-
这就是我开始做的事情。我有用于在一堆业务对象上进行自定义序列化的实例函数,但是我正在做一些通用类型和委托的东西来减少代码......长话短说,我还必须为每个业务对象实现一个小型共享序列化程序将类的实例作为参数的实例序列化程序。它所做的只是:“返回 InstanceArg.Serialize()”。我讨厌编写一堆只做这些的函数,但我已经对我的人进行了实践教育,我们把它放在主要的序列化函数下面,这样它就不会太难看。祝你好运,谢谢
标签: asp.net inheritance architecture