VB.Net - 通过构造函数传递带返回值的函数

时间:2016-11-21 16:18:31

标签: vb.net delegates

我有一个应用程序,使用大约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)是很好的,除非有返回值我无法弄明白。任何帮助将不胜感激

0 个答案:

没有答案