Conversione implicita da '<nometipo1>' a '<nometipo2>' quando il valore del parametro 'ByRef' '<nomeparametro>' viene ricopiato nell'argomento corrispondente

Aggiornamento: novembre 2007

Implicit conversion from '<typename1>' to '<typename2>' in copying the value of 'ByRef' parameter '<parametername>' back to the matching argument.

Una procedura viene chiamata con un argomento ByRef di un tipo diverso da quello del suo parametro corrispondente.

Se si passa un argomento ByRef, Visual Basic copia a volte il valore dell'argomento in una variabile locale nella routine invece di passare un riferimento. In tal caso, al ritorno della routine stessa, Visual Basic dovrà quindi copiare il valore della variabile locale nell'argomento del codice che effettua la chiamata.

Se il valore di un argomento ByRef viene copiato nella procedura e l'argomento e il parametro sono dello stesso tipo, non sarà necessaria alcuna conversione. Nel caso in cui i tipi siano diversi, Visual Basic dovrà consentire la conversione in entrambe le direzioni. Poiché non è possibile utilizzare CType o una qualsiasi delle altre parole chiave di conversione su un argomento o parametro di routine, tale conversione è sempre implicita.

Per impostazione predefinita, si tratta di un messaggio di avviso. Per informazioni su come nascondere gli avvisi o considerarli come errori, vedere Configurazione degli avvisi in Visual Basic.

ID errore: BC41999

Per correggere l'errore

  • Se possibile, utilizzare un argomento chiamante dello stesso tipo del parametro della routine in modo che Visual Basic non debba eseguire nessun altra conversione.

  • Per chiamare la procedura con un tipo di argomento diverso dal tipo di parametro ma non è necessario restituire un valore nel codice chiamante, definire il parametro in modo che sia ByVal invece di ByRef.

Vedere anche

Concetti

Routine in Visual Basic

Parametri e argomenti delle routine

Passaggio di argomenti per valore e per riferimento

Conversioni implicite ed esplicite