我有一个应用程序,使用大约89种不同的UserControls和非常相似的方法。我已经使用类似的方法为这些UserControls创建了一个基类。其中四种方法调用用于选择,插入,删除和更新数据库记录的函数。我处理这个问题的想法是将这四个数据库函数作为参数传递给基类,并在需要时在这些基本方法中引用它们。伪代码:
Public MustInherit Class MyAbstractBaseClass
Inherits UserControl
// Protected DatabaseInsertFunction(Of IDBRecord) As Boolean
// Protected DatabaseDeleteFunction(Of IDBRecord) As Boolean
// Protected DatabaseSelectFunction(Of IDBRecord) As Boolean
// Protected DatabaseUpdateFunction(Of IDBRecord) As Boolean
Public Sub New( InsertFunc, ...)
// Me.DatabaseInsertFun = InsertFun
...
End Sub
Protected Sub DoWork(someObject As IDBRecord)
// Do some work here
Dim result As Boolean = DatabaseInsertFunction(someObject)
...
End Sub
End Class
Public Class MyDerivedClass
Inherits MyAbstractBaseClass
Public Sub New()
MyBase.New(AddressOf InsertRecord)
End Sub
Private Sub InsertRecord(someObj as IDBRecord) As Boolean
// some work here
End Sub
End Class
我已尝试过我可以在Google上找到的每种语法变体,但它仍然无法实现。查看上面的代码片段,我想在构造时将派生类中的函数传递给基类,并将其存储在基类'类字段中,以便以后可以通过基类中的不同方法调用它们。使用Func(Of T)是很好的,除非有返回值我无法弄明白。任何帮助将不胜感激