Partager via


Option Strict On interdit le passage du type '<NomType1>' au type '<NomType2>' lors de la recopie de la valeur du paramètre 'ByRef' '<NomParamètre>' dans l'argument correspondant.

Mise à jour : novembre 2007

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

Une procédure est appelée avec un argument ByRef d'un type différent de celui de son paramètre correspondant.

Si vous passez un argument ByRef, Visual Basic copie parfois sa valeur dans une variable locale de la procédure au lieu de passer une référence. Dans ce cas, lors du retour de la procédure, Visual Basic doit copier la valeur de la variable locale dans l'argument du code appelant.

Si une valeur d'argument ByRef est copiée dans la procédure et que l'argument et le paramètre sont du même type, aucune conversion n'est nécessaire. Mais si les types sont différents, Visual Basic doit effectuer une conversion dans les deux sens. Étant donné que vous ne pouvez pas utiliser CType ou l'un des autres mots clés de conversion sur un argument ou un paramètre de procédure, une telle conversion est toujours implicite.

Par défaut, ce message est un avertissement. Pour plus d'informations sur le masquage des avertissements ou le traitement des avertissements en tant qu'erreurs, consultez Configuration d'avertissements en Visual Basic.

ID d'erreur : BC41999

Pour corriger cette erreur

  • Si possible, utilisez un argument d'appel du même type que le paramètre de procédure. Ainsi, Visual Basic n'a pas besoin d'effectuer une conversion.

  • Si vous devez appeler la procédure avec un type d'argument autre que le type du paramètre, sans retourner une valeur dans l'argument d'appel, affectez au paramètre la valeur ByVal au lieu de ByRef.

Voir aussi

Concepts

Procédures dans Visual Basic

Paramètres et arguments d'une procédure

Passage d'arguments par valeur et par référence

Conversions implicites et explicites