Я пытаюсь заставить мой код работать согласно инструкции на http://www.paulstovell.com/vb-anonymous-methods
Пока у меня есть обертка:
Public Delegate Function PredicateWrapperDelegate(Of T, A)(ByVal item As T, ByVal argument As A) As Boolean
Public Class PredicateWrapper(Of T, A)
Private _argument As A
Private _wrapperDelegate As PredicateWrapperDelegate(Of T, A)
Public Sub New(ByVal argument As A, _
ByVal wrapperDelegate As PredicateWrapperDelegate(Of T, A))
_argument = argument
_wrapperDelegate = wrapperDelegate
End Sub
Private Function InnerPredicate(ByVal item As T) As Boolean
Return _wrapperDelegate(item, _argument)
End Function
Public Shared Widening Operator CType( _
ByVal wrapper As PredicateWrapper(Of T, A)) _
As Predicate(Of T)
Return New Predicate(Of T)(AddressOf wrapper.InnerPredicate)
End Operator
End Class
Тогда у меня есть функция, которую я изменилиспользовать мою переменную id отдела (did)
Function DidMatch(ByVal item As ListDataItem, ByVal did As Integer) As Boolean
Return item.AssigneddepartmentID.Equals(did)
End Function
Затем я пытаюсь вызвать ее из моего кода:
Dim children As List(Of String) = toplevel.FindAll(New PredicateWrapper(Of Integer, Integer)(Did, AddressOf DidMatch))
Затем я получаю ошибку в DidMatch ... Error Method 'Открытая функция DidMatch (item As DeptMenuData, did As Integer) As Boolean 'не имеет сигнатуры, совместимой с делегатом' Delegate Function PredicateWrapperDelegate (Of Integer, Integer) (item As Integer, аргумент As Integer) как Boolean '.
Вы видите, что я делаю неправильно?
Спасибо.