英語で読む

次の方法で共有


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

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

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

  • デリゲートと拡張メソッドに同じ数のパラメーターがあることを確認します。

  • デリゲートと拡張メソッドで、パラメーターの順序が同じになっていることを確認します。

  • 各パラメーターのデータ型と、対応する拡張メソッドのパラメーターを比較して、互換性があることを確認します。

関連項目