Ни один из доступных методов " <procedurename> " не имеет сигнатуры, совместимой с делегатом " <delegatename> ":<suberrorlist>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. Дополнительные сведения см. в разделе Overload Resolution.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.

Идентификатор ошибки: BC30950Error 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