MustInherit Class Person
Overridable Function TableName() As String
Return "Person"
End Function
Sub Save
DoSomething(Me)
End Sub
End Class
Class Staff
Inherits Person
Overrides Function TableName() As String
Return "Staff"
End Function
Overloads Sub Save()
MyBase.Save()
DoSomething(Me)
End Sub
End Class
Sub DoSomething(o as Object)
DoAnotherThing(o.TableName)
End Sub有没有办法让我在DoSomething中引用Person.Save中的人员和Staff.Save中的Staff?目前,他们都提到了员工实例。
我试图编写一个普通例程来将属性保存到数据库中,问题是有3个对象继承了Person (人员、客户端、联系人)和大量几乎重复的代码,这使得4个数据库表(Person具有与3相同的数据)。
发布于 2022-07-14 16:52:58
我想知道这种结构是否有帮助
MustInherit Class BasePersons
'stuff common to classes that Inherit here
MustOverride Function TableName() As String
MustOverride Sub Save()
Sub DoSomething(BP As BasePersons)
'code
Debug.WriteLine(BP.TableName)
End Sub
End Class
Class Person
Inherits BasePersons
Overrides Function TableName() As String
Return "Person"
End Function
Overrides Sub Save()
DoSomething(Me)
End Sub
End Class
Class Staff
Inherits BasePersons
Overrides Function TableName() As String
Return "Staff"
End Function
Overrides Sub Save()
DoSomething(Me)
End Sub
End Class发布于 2022-07-15 01:03:01
因为它只适用于一个对象,所以我重新定义了几个子对象。
Sub DoSomething(o as Object, optional IsPerson as Boolean = false)
Dim TableName As String = If(IsPerson, "Person", obj.TableName)
DoAnotherThing(o, TableName)
End Sub
Sub DoAnotherThing(o as Object, TableName as string)哈奇,一点也不,但对我来说已经足够好了。
https://stackoverflow.com/questions/72983699
复制相似问题