Las variables son "nombres" que pueden contener un valor, ya sea de tipo numérico como de cualquier otro tipo. Esos nombres son convenciones que nosotros usamos para facilitarnos las cosas, ya que para los ordenadores, una variable es una dirección de memoria en la que se guarda un valor o un objeto.
Existen distintos tipos de valores que se pueden asignar a una variable, por ejemplo, se puede tener un valor numérico o se puede tener un valor de tipo alfanumérico o de cadena, (string), pero en cualquier caso, la forma de hacerlo siempre es de la misma, por ejemplo si queremos guardar el número 10 en una variable, haremos algo como esto:
i = 10
En este caso i es la variable, mientras que 10 sería una constante, (10 siempre vale 10), la cual se asigna a esa "posición" de memoria a la que llamamos i, para facilitarnos las cosas... ya que, realmente no nos interesa saber dónde se guarda ese valor, lo único que nos interesa es saber que se guarda en algún lado para en cualquier ocasión poder volver a usarlo.
Al ser una variable podemos alterar su valor, por ejemplo, si en cualquier ocasión posterior hacemos esto: i = 25, el valor de la variable i cambiará, de forma que el valor anterior se modificará y el que se almacenará será el nuevo.
También podemos aplicar expresiones al asignar una variable, una expresión es un cálculo que queremos hacer, por ejemplo: i = x * 25, en este caso x * 25 se dice que es una expresión, cuyo resultado, (el resultante de multiplicar lo que vale la variable x por la constante 25), se almacenará en la variable i.
Si x vale 3, (es decir el valor de la variable x es tres), el resultado de multiplicarlo por 25, se guardará en la variable i, es decir i valdrá 75.
Cuando se asignan valores de cadenas de caracteres ó alfanuméricos (string) el contenido de la variable debe ponerse entre comillas "". Para asignar una cadena de caracteres a una variable, se haría algo como esto: s = "Hola"
De esta forma, la variable s contiene el valor constante "Hola". Podemos cambiar el valor de s, asignándole un nuevo valor: s = "adiós".
Ver todo el artículo...
Pero no es suficiente saber qué es una variable, lo importante es saber cómo decirle al VB.NET que queremos usar un espacio de memoria para almacenar un valor, ya sea numérico, de cadena o de cualquier otro tipo. Para esto utilizaremos las declaraciones de variables. La declaración de una variable es el proceso por el que le decimos s VB.NET que cree una variable y le indicaremos su nombre y su tipo. Es necesario, aunque no obligatorio, declarar las variables según el tipo de datos que va a almacenar. Esto es una de las cosas que mas nos pueden chocar al principio de VB.NET (en general de VB): las variables podemos declararlas o no.
Ya hablaremos de esto mas adelante pero si no hace falta declararlas... ¿para qué tanta teoría e instrucciones? Bueno pues porque existen las dos posibilidades y la de no declarar variables puede ser muy cómodo al principio pero muy complejo mas adelante. Las normas del buen programador obligan a declarar todas las variables que utilicemos en el programa. Esto puede dar un poco mas de trabajo pero es imprescindible para escribir un buen código.
Para declarar una variable utilizaremos las palabras clave: DIM, PRIVATE, PUBLIC ó STATIC, dependiendo de cómo queremos que se comporte.
Por ejemplo, en el caso anterior, la variable i era de tipo numérico y la variable s era de tipo cadena. Esas variables habría que declararlas de la siguiente forma: (después veremos otras formas de declarar las variables numéricas)
Dim i As Integer
Dim s As String
Con esto le estamos diciendo al vb.NET que reserve espacio en su memoria para guardar un valor de tipo Integer, (numérico), en la variable i y que en la variable s vamos a guardar valores de cadena de caracteres.
Existe un tipo de datos para los valores numéricos y otro para los alfanuméricos... ahora veamos en una tabla todos los tipos existentes y comentaremos cuales debemos utilizar:
Tipos de datos de Visual Basic.NET y su equivalente en el Common Language Runtime (CLR)
Tipo de Visual Basic | Tipo en CLR (Framework) | Espacio de memoria que ocupa | Valores que se pueden almacenar y comentarios |
Boolean | System.Boolean | 2 bytes | Un valor verdadero o falso. Valores: True o False. En VB se pueden representar por -1 o 0, en CLR serán 1 y 0, aunque no es recomendable usar valores numéricos, es preferible usar siempre True o False. |
Byte | System.Byte | 1 byte | Un valor positivo, sin signo, para contener datos binarios. Valores: de 0 a 255 Puede convertirse a: Short, Integer, Long, Single, Double o Decimal sin recibir overflow |
Char | System.Char | 2 bytes | Un carácter Unicode. Valores: de 0 a 65535 (sin signo). No se puede convertir directamente a tipo numérico. |
Date | System.DateTime | 8 bytes | Una fecha. Valores: desde las 0:00:00 del 1 de Enero del 0001 hasta las 23:59:59 del 31 de Diciembre del 9999. Las fechas deben representarse entre almohadillas # y por lo habitual usando el formato norteamericano: #m-d-yyyy# |
Decimal | System.Decimal | 16 bytes | Un número decimal. Valores: de 0 a +/-79,228,162,514,264,337,593,543,950,335 sin decimales; de 0 a +/-7.9228162514264337593543950335 con 28 lugares a la derecha del decimal; el número más pequeño es: +/-0.0000000000000000000000000001 (+/-1E-28). En los literales se puede usar la letra D o el signo @ para indicar que el valor es Decimal. |
Double | System.Double | 8 bytes | Un número de coma flotante de doble precisión. Valores: de -1.79769313486231570E+308 a -4.94065645841246544E-324 para valores negativos; de 4.94065645841246544E-324 a 1.79769313486231570E+308 para valores positivos. Se puede convertir a Decimal sin recibir un overflow. |
Integer | System.Int32 | 4 bytes | Un número entero (sin decimales) Valores: de -2,147,483,648 a 2,147,483,647. Se puede convertir a Long, Single, Double o Decimal sin producir overflow. |
Long (entero largo) | System.Int64 | 8 bytes | Un entero largo (o grande) Valores: de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807. Se puede convertir a Single, Double o Decimal sin producir overflow. |
Object | System.Object (class) | 4 bytes | Cualquier tipo se puede almacenar en una variable de tipo Object. Todos los datos que se manejan en .NET están basados en el tipo Object. |
Short (entero corto) | System.Int16 | 2 bytes | Un entero corto (sin decimales) Valores: de -32,768 a 32,767. Se puede convertir a: Integer, Long, Single, Double o Decimal sin producir un overflow. |
Single | System.Single | 4 bytes | Número de coma flotante de precisión simple. Valores: de -3.4028235E+38 a -1.401298E-45 para valores negativos; de 1.401298E-45 a 3.4028235E+38 para valores positivos. Se puede convertir a: Double o Decimal sin producir overflow. |
String (cadenas de longitud variable) | System.String (clase) | Depende de la plataforma | Una cadena de caracteres Unicode. Valores: de 0 to aproximadamente 2 billones (2^31) de caracteres Unicode. Se puede usar el símbolo $ para indicar que una variable es un String. |
Tipos definidos por el usuario (estructuras) | (heradada de System.ValueType) | Depende de la plataforma | Cada miembro de la estructura tiene su rango, dependiendo del tipo de dato que representa. |
Esta tabla muestra algunos de los mas importantes de ellos y los valores mínimos y máximos que puede contener, así como el tamaño que ocupa en memoria. Tenemos los tipos de datos que podemos usar en vb.NET y por tanto, de los que podemos declarar variables. Por ejemplo, si queremos tener una variable en la que guardaremos números enteros, (sin decimales), los cuales sabemos que no serán mayores de 32767 ni menores de -32768, podemos usar el tipo Short:
Dim variable As Short
Después podemos asignar el valor correspondiente:
variable = 15000
Cuando asignemos valores a las variables podemos hacer esta asignaciones dependiendo del tipo que es, es decir, según el tipo de dato de la variable puede ser necesario el uso de delimitadores para encerrar el valor que vamos a asignar:
- Tipos numéricos. Las variables no necesitan delimitadores, se asignan directamente. Si es una valor real los decimales se separan con el punto.
- Tipos alfanuméricos o cadenas de caracteres. Las variables se encierran entre comillas: "pepe", "casado"
- Fecha. Podemos encerrar la fecha con los signos #. Por ejemplo #01/01/2004#. o con comillas dobles. La diferencia (y muy importante) es que si utilizamos las almohadillas # el formato de la fecha es mes/día/año y si es la comilla el formato es día/mes/año (por el valor de la configuración regional de nuestro equipo).
- Tipos lógicos (boolean). Las variables de este tipo sólo pueden tener los valores Verdadero (True) o falso (False)
Las variables las podemos declarar en cualquier parte del código pero por norma utilizaremos lo mas lógico que es declararlas al principio de nuestras rutinas o procedimientos. También podemos asignar un valor a la variable en el momento de crearla por ejemplo:
Dim valor as string="mesa"
Dim edad as long="23"
Que sería lo mismo que hacer:
Dim valor as string
Dim edad as longvalor="mesa"
edad=23
Por regla general no haremos esa asignación en la declaración simplemente porque en muchos casos no sabremos su valor predeterminado ya que estamos declarando esas variables para realizar cálculos en el código.