Поделиться через


Нет доступного метода <имяПроцедуры> с сигнатурой, совместимой с делегатом <имяДелегата>:<списокОшибок>

Обновлен: Ноябрь 2007

No accessible method '<procedurename>' matches the signature of delegate '<delegatename>':<suberrorlist>

Оператор присваивания назначает адрес процедуры переменной делегата, но компилятор не может найти версию процедуры с соответствующим описанием.

Когда код использует адрес процедуры, компилятор пытается найти версию этой процедуры со списком параметров, который соответствует делегату. Если процедура определена в нескольких перегруженных версиях, то компилятор пытается найти одну версию с соответствующим описанием. Дополнительные сведения см. в разделе Разрешение перегрузки.

Если компилятор не может найти версию процедуры с соответствующим описанием, то он выдает эту ошибку. Это может произойти, например, если процедура или делегат универсальны и передается такой тип аргумента, что одно описание не соответствует другому.

Идентификатор ошибки: BC309590

Исправление этой ошибки

  1. Переопределить или процедуру, или делегат так, чтобы соответствовали списки параметров.

    либо

    Определите нового делегата со списком параметров, соответствующим списку процедуры, или определите новую процедуру со списком параметров, соответствующим списку делегата.

  2. Если процедура или делегат универсальны, то передайте ей такой тип аргумента, чтобы одно описание соответствовало другому описанию.

См. также

Основные понятия

Делегаты и оператор AddressOf

Разрешение перегрузки

Универсальные типы в Visual Basic

Ссылки

Оператор AddressOf

Оператор Delegate