メソッド '<methodname>' に、デリゲート <'delegatename'> と互換性があるシグネチャがありません
更新 : 2007 年 11 月
このエラーは、メソッドとデリゲート間で変換が必要だが、これを実行できない場合に発生します。エラー原因としては、パラメータ間での変換、メソッドとデリゲートが関数である場合、戻り値での変換などが考えられます。
次のコードは、失敗した変換の例を示しています。デリゲートは FunDel です。
Delegate Function FunDel(ByVal i As Integer, ByVal d As Double) As Integer
次の関数はそれぞれ FunDel とは違い、その違いがこのエラーの原因になっています。
Function ExampleMethod1(ByVal m As Integer, ByVal aDate As Date) As Integer
End Function
Function ExampleMethod2(ByVal m As Integer, ByVal aDouble As Double) As Date
End Function
次の各代入ステートメントはエラーになります。
Sub Main()
' The second parameters of FunDel and ExampleMethod1, Double and Date,
' are not compatible.
'Dim d1 As FunDel = AddressOf ExampleMethod1
' The return types of FunDel and ExampleMethod2, Integer and Date,
' are not compatible.
'Dim d2 As FunDel = AddressOf ExampleMethod2
End Sub
Error ID: BC31143
このエラーを解決するには
- 対応するパラメータ、および戻り値が存在する場合は戻り値の型も調べて、どのペアに互換性がないかを確認します。