Instrucciones de asignación

Actualización: noviembre 2007

Las instrucciones de asignación realizan operaciones de asignación, que consisten en tomar el valor de la derecha del operador de asignación (=) y almacenarlo en el elemento de la izquierda, como en el ejemplo siguiente.

v = 42

En el ejemplo anterior, la instrucción de asignación almacena el valor literal 42 en la variable v.

Elementos de programación elegibles

El elemento de programación del lado izquierdo del operador de asignación debe poder aceptar y almacenar un valor. Esto significa que debe ser una variable o propiedad que no es ReadOnly (Visual Basic), o debe ser un elemento de matriz. En el contexto de una instrucción de asignación, este tipo de elemento a veces se denomina valor l, que significa "valor de la izquierda".

El valor del lado derecho del operador de asignación se genera mediante una expresión que puede estar formada por cualquier combinación de literales, constantes, variables, propiedades, elementos de matriz, otras expresiones o llamadas a función. Esto se ilustra en el siguiente ejemplo:

x = y + z + findResult(3)

En el ejemplo anterior se agrega el valor almacenado en la variable y al valor almacenado en la variable z y, a continuación, se agrega el valor que devuelve la llamada a la función findResult. El valor total de esta expresión se almacena en la variable x.

Tipos de datos en instrucciones de asignación

Además de valores numéricos, el operador de asignación también puede asignar valores String, tal como muestra el ejemplo siguiente.

Dim a, b As String
a = "String variable assignment"
b = "Con" & "cat" & "enation"
' The preceding statement assigns the value "Concatenation" to b.

También se pueden asignar valores Boolean utilizando un literal Boolean o una expresión Boolean, tal como muestra el ejemplo siguiente.

Dim r, s, t As Boolean
r = True
s = 45 > 1003
t = 45 > 1003 Or 45 > 17
' The preceding statements assign False to s and True to t.

Igualmente, se pueden asignar valores adecuados a elementos de programación del tipo de datos Char, Date u Object. También se puede asignar una instancia de objeto a un elemento declarado como miembro de la clase a partir de la que se crea esa instancia.

Instrucciones de asignación compuesta

Las instrucciones de asignación compuesta realizan primero una operación en una expresión antes de asignarla a un elemento de programación. En el siguiente ejemplo se muestra uno de estos operadores, +=, que incrementa el valor de la variable del lado izquierdo del operador con el valor de la expresión de la derecha.

n += 1

En el ejemplo anterior se suma 1 al valor de n y, a continuación, el nuevo valor se almacena en n. Es el equivalente abreviado de la siguiente instrucción:

n = n + 1

Mediante el uso de este tipo de operadores, puede realizarse una serie de operaciones de asignación compuestas. Para obtener una lista de estos operadores y más información sobre ellos, vea Operadores de asignación.

El operador de asignación de concatenación (&=) es útil para agregar una cadena al final de cadenas existentes, como se muestra en este ejemplo.

Dim q As String = "Sample "
q &= "String"
' q now contains "Sample String".

Conversiones de tipos en instrucciones de asignación

El valor que se asigna a una variable, propiedad o elemento de matriz debe ser de un tipo de datos apropiado para el elemento de destino. En general, hay que intentar generar un valor del mismo tipo de datos que el del elemento de destino. Sin embargo, algunos tipos se pueden convertir en otros tipos durante la asignación.

Para obtener información sobre cómo convertir entre tipos de datos, vea Conversiones de tipos en Visual Basic. En pocas palabras, Visual Basic convierte automáticamente un valor de un tipo dado en cualquier otro tipo al que amplia. Una conversión de ampliación es aquella que siempre se produce en tiempo de ejecución y no pierde datos. Por ejemplo, Visual Basic convierte un valor Integer en Double cuando es apropiado, porque Integer se amplia a Double. Para obtener más información, vea Conversiones de ampliación y de restricción.

Las conversiones de restricción (las que no son de ampliación) conllevan el riesgo de error o de pérdida de datos en tiempo de ejecución. Las conversiones de restricción se pueden realizar explícitamente mediante una función de conversión de tipos, o se puede indicar al compilador que realice implícitamente todas las conversiones estableciendo Option Strict Off. Para obtener más información, vea Conversiones implícitas y explícitas.

Vea también

Conceptos

Información general sobre las instrucciones

Instrucciones de declaración en Visual Basic

Instrucciones ejecutables

Conversiones de ampliación y de restricción

Referencia

Operadores de asignación