La variable '<variablename>' se ha pasado como referencia antes de haberle asignado un valor (variable de estructura)

La variable '<variablename>' se ha pasado como referencia antes de haberle asignado un valor (variable de estructura). Podría producirse una excepción de referencia nula en tiempo de ejecución. Asegúrese de que la estructura o todos los miembros de referencia se inicializan antes de usarlos.

Una llamada a procedimiento pasa una variable de estructura como argumento para un parámetro ByRef antes de asignar cualquier valor a la variable.

Si nunca se ha asignado un valor a una variable de estructura, cada miembro de la estructura contiene el valor predeterminado para su tipo de datos. Para un tipo de datos de referencia, el valor predeterminado es Nothing. Leer un miembro de referencia que tiene un valor de Nothing puede producir una excepción NullReferenceException en algunas circunstancias.

Cuando se pasa un argumento a un procedimiento ByRef , se expone a la variable subyacente del argumento a una posible modificación por parte del procedimiento.

De forma predeterminada, este mensaje es una advertencia. Para más información sobre cómo ocultar las advertencias o cómo tratarlas como errores, vea Configuring Warnings in Visual Basic.

Identificador de error: BC42108

Para corregir este error

  • Si quiere que el procedimiento asigne valores a los miembros de estructura mediante el argumento ByRef , y si no importa si los miembros ya contienen valores, no es necesario realizar ninguna acción.

  • Si la lógica del procedimiento lee un miembro de estructura antes de asignarle algún valor, y si el miembro es de un tipo de valor, asegúrese de que la lógica del procedimiento no depende de si el miembro contiene o no su valor predeterminado.

  • Si la lógica del procedimiento lee un miembro de estructura antes de asignarle algún valor, y si el miembro es de un tipo de referencia, asegúrese de que la lógica del procedimiento puede controlar un valor de Nothing. Por ejemplo, podría usar una instrucción Try...Catch...Finally para detectar una NullReferenceException.

Consulte también