Leggere in inglese

Condividi tramite


Nessun metodo accessibile '<procedurename>' ha una firma compatibile con il delegato '<delegatename>': <suberrorlist>

Un'istruzione di assegnazione assegna l'indirizzo di una routine a una variabile delegato, ma il compilatore non riesce a trovare una versione della routine con una firma corrispondente.

Quando il codice usa l'indirizzo di una routine, il compilatore cerca di trovare una versione di quella routine con un elenco di parametri che corrisponda a quello del delegato. Se la routine è definita in diverse versioni di overload, il compilatore cerca di trovare una versione singola con una firma corrispondente. Per altre informazioni, vedere Overload Resolution.

Se il compilatore non trova alcuna versione della routine con una firma corrispondente, viene generato questo errore. Questa situazione può verificarsi ad esempio se la routine o il delegato sono generici e se viene passato un argomento di tipo che assegna una firma che non corrisponde all'altra firma.

ID errore: BC30950

Per correggere l'errore

  1. Ridefinire la routine o il delegato in modo che abbiano elenchi di parametri corrispondenti.

    oppure

    Definire un nuovo delegato con un elenco di parametri che corrisponda a quello della routine o definire una nuova routine con un elenco di parametri che corrisponda a quello del delegato.

  2. Se la routine o il delegato è generico, passare un argomento di tipo che faccia in modo che la sua firma corrisponda con l'altra.

Vedi anche