Метода расширения <имяМетода>, определенный в <имяТипа>, имеет отличную от делегата <имяДелегата> сигнатуру
Обновлен: Ноябрь 2007
Extension method '<methodName>' defined in '<typeName>' does not have the same signature as delegate '<delegateName>'
Существует несоответствие между сигнатурами метода и делегата, попытка использования которого предпринимается. Типы параметров и значения, возвращаемые классом делегата, определяются оператором Delegate. Для создания экземпляра данного типа делегата может использоваться любая процедура с соответствующими типами параметров и типом возвращаемого значения. В следующем примере ошибка возникает из-за несоответствия сигнатуры метода Example и сигнатуры делегата Del.
' Definition of the delegate, with two parameters.
Delegate Sub Del(ByVal m As Integer, ByVal s As String)
' Definition of the extension method, with one parameter.
<Extension()> _
Sub Example(ByVal s As String)
' Body of the Sub.
End Sub
'' This assignment causes the error.
' Dim exampleDel As Del = AddressOf Example
Идентификатор ошибки: BC36680
Исправление этой ошибки
Проверьте, что делегат и метод имеют одинаковое число параметров.
Проверьте, что параметры делегата и метода расположены в одинаковом порядке.
Проверьте типы соответствующих параметров делегата и метода на их совместимость.
См. также
Основные понятия
Методы расширения (Visual Basic)
Ослабленное преобразование делегата