次の方法で共有


'<typeName>' で定義された拡張メソッド '<methodName>' に、デリゲート '<delegateName>' と同じシグネチャがありません

更新 : 2007 年 11 月

拡張メソッドのシグネチャと使用しようとしているデリゲートのシグネチャが一致していません。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 ステートメント