다음을 통해 공유


'<typeName>'에 정의된 확장 메서드 '<methodName>'과(와) '<delegateName>' 대리자의 시그니처가 다릅니다.

업데이트: 2007년 11월

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

오류 ID: BC36580

이 오류를 해결하려면

  • 대리자와 확장 메서드의 매개 변수 수가 같은지 확인합니다.

  • 대리자와 확장 메서드의 매개 변수 순서가 같은지 확인합니다.

  • 각 대리자 매개 변수의 데이터 형식과 해당 확장 메서드 매개 변수의 데이터 형식을 비교하여 서로 호환되는지 확인합니다.

참고 항목

개념

확장 메서드(Visual Basic)

완화된 대리자 변환

참조

Delegate 문