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