メソッド '<メソッド名>' に、デリゲート '<デリゲート名>' と互換性があるシグネチャがありません

このエラーは、メソッドとデリゲート間で必要な変換ができない場合に生じます。 エラーの原因としては、パラメーターの間の変換か、戻り値の変換 (メソッドとデリゲートが関数の場合) が考えられます。

次のコードは、こうした障害が発生する変換を示しています。 デリゲートは 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  

エラー ID: BC31143

このエラーを解決するには

  • 対応するパラメーター、および戻り値の型 (存在する場合) を調べて、互換性のないペアを特定します。

関連項目