Condividi tramite


BC32053: Copiare nuovamente il valore del parametro "ByRef" "<parametername>" sull'argomento corrispondente comporta la riduzione dal tipo "<typename1>" al tipo "<typename2>"

Una routine viene chiamata con un argomento che si estende al tipo di parametro corrispondente e la conversione dal parametro all'argomento si riduce.

Quando si definisce una classe o una struttura, è possibile definire uno o più operatori di conversione per convertire il tipo della classe o della struttura in altri tipi. È anche possibile definire operatori di conversione inversi per riconvertire gli altri tipi nel tipo della classe o della struttura originale. Quando si usa il tipo di classe o di struttura in una chiamata di routine, Visual Basic può usare questi operatori di conversione per convertire il tipo di un argomento nel tipo del relativo parametro corrispondente.

Se si passa l'argomento ByRef, Visual Basic a volte copia il valore dell'argomento in una variabile locale nella routine invece di passare un riferimento. In tal caso, alla restituzione della routine Visual Basic deve quindi copiare nuovamente il valore della variabile locale nell'argomento nel codice chiamante.

Se un valore dell'argomento ByRef viene copiato nella routine e l'argomento e il parametro sono dello stesso tipo, non è necessaria alcuna conversione. Se invece i tipi sono diversi, Visual Basic deve eseguire la conversione in entrambe le direzioni. Se uno dei tipi è il tipo di classe o di struttura, Visual Basic deve convertirlo da e verso l'altro tipo. Se una di queste conversioni è estesa, la conversione inversa potrebbe essere ridotta.

ID errore: BC32053

Per correggere l'errore

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

  • Se è necessario chiamare la routine con un tipo di argomento diverso dal tipo del parametro, ma non è necessario restituire un valore nell'argomento chiamante, definire il parametro in modo che sia ByVal invece che ByRef.

  • Se è necessario restituire un valore nell'argomento chiamante, definire l'operatore di conversione inverso come Widening, se possibile.

Vedi anche