更新 : 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
このエラーを解決するには
デリゲートと拡張メソッドのパラメータ数が同じであることを確認します。
デリゲートと拡張メソッドのパラメータの順序が同じであることを確認します。
デリゲートの各パラメータのデータ型と、対応する拡張メソッドのパラメータのデータ型に互換性があることを確認します。