Метод <имяМетода> не имеет подписи, совместимой с делегатом <имяДелегата>
Обновлен: Ноябрь 2007
Method '<methodname>' does not have a signature compatible with delegate <'delegatename'>
Эта ошибка возникает, когда необходимое преобразование между методом и делегатом невозможно. Причиной ошибки может быть преобразование между параметрами или когда метод и делегат являются функциями, преобразованием возвращаемых значений.
Следующий код иллюстрирует сбой преобразования. Делегат является FunDel.
Delegate Function FunDel(ByVal i As Integer, ByVal d As Double) As Integer
Каждая из следующих функций отличается от FunDel таким образом, что это приводит к возникновению ошибки.
Function ExampleMethod1(ByVal m As Integer, ByVal aDate As Date) As Integer
End Function
Function ExampleMethod2(ByVal m As Integer, ByVal aDouble As Double) As Date
End Function
Каждый из следующих операторов присваивания вызывает ошибку.
Sub Main()
' The second parameters of FunDel and ExampleMethod1, Double and Date,
' are not compatible.
'Dim d1 As FunDel = AddressOf ExampleMethod1
' The return types of FunDel and ExampleMethod2, Integer and Date,
' are not compatible.
'Dim d2 As FunDel = AddressOf ExampleMethod2
End Sub
Идентификатор ошибки: BC31143
Исправление этой ошибки
- Просмотрите соответствующие параметры и, при наличии возвращаемых типов, определите, какая из пар несовместима.