No accessible method '<procedurename>' has a signature compatible with delegate '<delegatename>':<suberrorlist>

An assignment statement assigns the address of a procedure to a delegate variable, but the compiler cannot find a version of the procedure with a matching signature.

When code uses the address of a procedure, the compiler tries to find a version of that procedure with a parameter list that matches that of the delegate. If the procedure is defined in several overloaded versions, the compiler tries to find a single version with a matching signature. For more information, see Overload Resolution.

If the compiler cannot find any version of the procedure with a matching signature, it generates this error. This can happen, for example, if either the procedure or the delegate is generic and a type argument is passed to it that gives it a signature that does not match the other signature.

Error ID: BC30950

To correct this error

  1. Redefine either the procedure or the delegate so that they have matching parameter lists.

    -or-

    Define a new delegate with a parameter list matching that of the procedure, or define a new procedure with a parameter list matching that of the delegate.

  2. If either the procedure or the delegate is generic, then pass it a type argument that causes its signature to match the other signature.

See Also

Concepts

Delegates and the AddressOf Operator

Overload Resolution

Generic Types in Visual Basic

Reference

AddressOf Operator

Delegate Statement