Leer en inglés

Compartir a través de


El método de extensión '<methodName>' definido en '<typeName>' no tiene la misma signatura que el delegado '<delegateName>'

Hay un error de coincidencia entre las firmas del método de extensión y el delegado que está intentando usar. La instrucción Delegate define los tipos de parámetro y los tipos de valores devueltos de una clase de delegado. Cualquier procedimiento con parámetros coincidentes, tipos y tipos devueltos puede usarse para crear una instancia de este tipo de delegado. Este error se produce en el siguiente ejemplo, porque la firma del método de extensión Example no es compatible con la firma del delegado 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  

Identificador de error: BC36580

Para corregir este error

  • Compruebe que el delegado y el método de extensión tienen el mismo número de parámetros.

  • Compruebe que el orden de los parámetros es el mismo en el delegado y el método de extensión.

  • Comparar el tipo de datos de cada parámetro de delegado con el tipo de datos del parámetro correspondiente del método de extensión para asegurarse de que son compatibles.

Consulte también