Introducción.
Todo lenguaje de programación consta de una estructura para poder programar aplicaciones con él. En la programación, es necesario almacenar valores que nuestra aplicación, requiera utilizar más adelante.
Una variable o una constante ocupan una posición en memoria RAM del PC. Generalmente una variable se puede declarar de tipo local o de tipo general, eso significa que puede ser usada en un proceso único o en general todo el proyecto.
Me explico. Una variable, puede ser usada entre un proceso Private Sub y End Sub para que sea utilizada por ese proceso del proyecto, o declararla en la zona general del código para que sea usada por todo el proyecto.
Por ejemplo si queremos guardar un valor numérico en una variable local llamada X, la declararemos en el proceso que nos interesa declararla. Luego mediante instrucciones, llamamos a esa variable, que almacena su valor en una zona de memoria RAM. Veamos un ejemplo.
Abrimos de nuevo el proyecto de Windows Forms original llamado VideoClub (En la zona de prácticas de este capítulo te dejaré el enlace de descarga del proyecto), y abrimos el TextBox dejando su nombre por defecto, por lo que el control se nombrará TextBox1. Abrimos el código del formulario, y puedes ver que ya existe un código asociado con el evento TextChanged en el cual cuando se escriba algo saldrá un mensaje definido anteriormente.
Como puedes ver cuando se ejecuta y se intenta escribir algo, se muestra una ventana de alerta y se escribe un texto completo en el TexBox1.
Como puedes ver se ha declarado en la clase del Form1 una variable llamada texto del tipo string. De esta forma observa como para declarar una variable utilizamos la sentencia Dim. Y al declararla dentro de la clase principal Form1, estará disponible a todos los objetos de la clase.
Tipo de variables
Existen muchos tipos de variables y constantes. La que has visto en el ejemplo, es una variable del tipo String, es decir que almacena valores alfanuméricos, pero hay muchos más tipos de variables, que a continuación se te mostraré:
Tipo de dato | Librería .NET | Tamaño | Valor |
---|---|---|---|
Boolean | System | 2 bytes | True / False |
Byte | System.Byte | 1 byte | De 0 a +255 |
Char | System.Char | 2 bytes | De 0 a +65535 |
Date | System.Date.Time | 8 bytes | Fecha y hora entre # |
Decimal | System.Decimal | 16 bytes | 0 a +- 7.9*10e28 |
Double | System.Double | 8 bytes | Números en coma flotante |
Integer | System.Int32 | 4 bytes | -2147483648 a +2147483648 |
Long | System.Int64 | 8 bytes | -9*10e19 a +9*10e19 |
Object | System.Object | 4 bytes | Cualquier tipo |
Short | System.Int16 | 2 bytes | De -32768 a + 32767 |
Single | System.Single | 4 bytes | De -3,4e+38 a -1,4e-45 |
String | System.String | Depende | Cadena alfanumérica |
Cuando en una variable a utilizar damos un valor superior al de su valor de uso, el CLR hará que salga el error Overflow, ya que la variable a utilizar lleva unos valores superiores a los asignados. El valor más grande numérico a utilizar lo consigues con la variable Decimal. Pero como todas los tipos se basan en el tipo Object, el editor de Visual Basic.NET, a veces, se confunde; por ejemplo en el tipo Decimal. Yo declaro una variable decimal de la siguiente forma:
Dim D as Decimal = 555.12345678901234567890
Como ves, es un número decimal, con 20 decimales. Pero por un error de sintaxis el editor de Visual Basic.NET, cree que es un tipo Double, y lo traduce automáticamente:
Para evitar esto existen unas series de sufijos que hacen ver al CLR que esa variable es del tipo exacto. Por lo general no hace falta usar este tipo de sufijos, ya que al declarar la variable, ya se está poniendo el tipo que es; pero aun así es bueno “sufijar” en tanto lo referente a variables de valores elevados. Para Decimal el sufijo D o el signo @ declara la variable Decimal, y CLR no recorta nada:
Dim D as Decimal = 555.12345678901234567890D
Para Double el sufijo R. Aun así CLR recorta el número final:
Dim D as Double = 555.12345678901234567890D
Para Integer, el sufijo I o %:
Dim I as Integer = 65200I (o) 65200%
Como se declaran las variables.
Como hemos visto antes, para declarar una variable, se utiliza la forma DIM seguida del nombre que queramos dar a la variable y seguido de la sentencia AS y el tipo de la variable a utilizar. En el ejemplo.
Dim variable as Integer
Con esto, ya hemos reservado espacio de memoria en la RAM. Como no la hemos asignado ningún valor, CLR reserva el valor máximo que puede coger esa variable de espacio de memoria RAM, es decir que ocupa la totalidad de los 4 bytes reservados. Podrías utilizar esta variable con los valores comprendidos entre 2.147.483.648 a 2.147.483.647.
Pero a veces, no vamos a utilizar tanta memoria para nuestra variable, por lo que al asignarle un valor, CLR reserva el espacio de memoria ajustado al nuevo valor de la variable:
Dim variable as Integer = 10000
Con esto, a la vez que ahorramos memoria, fomentamos una mejora en la estructura del código, ya que no sobrecargamos al CLR que tardaría más en analizar el proyecto, al ser las variables enormes.
Varias variables se pueden declarar en la misma línea de código; para ello han de estar separadas con una coma por cada variable. Si las variables son del mismo tipo, cada nombre de variable, estará separada por una coma, y declaradas por el mismo tipo. Declaramos variables de distinto tipo en la misma línea:
Dim D as Double, I as Integer, texto as String
Esta forma de declarar variables es la que más espacio en memoria ocupa, ya que reserva todo el espacio en memoria de cada variable declarada (salvo el String). Para que almacene lo justo, le asignamos un valor:
Dim D as Double= 3.141516R, texto as String=”Hola”, I as Integer=10000
De esta forma ya ocupa menos memoria cada variable. Para declarar Variables del mismo tipo en la misma línea:
Dim I, J, K as Integer
Aquí declaramos 3 variables del tipo Integer; el espacio de memoria para cada una es el máximo. Para declararlas en la misma línea y asignarles un valor:
Dim I = 1000, J = 65000, K as Integer=2000
Esta es la forma correcta de asignar valores a variables del mismo tipo. Hasta aquí nos hemos centrado en las variables; tipos de instrucciones que almacenan un valor temporal o permanente y que sirven para ocupar reservar un espacio de memoria para un fin determinado. Pero, ¿Qué son las constantes? Pues bien, una constante es igual que una variable, pero con un valor fijo, me explico. Una variable, puede ser renombrada, puede tener un valor fijo y ser cambiado al ejecutarse la aplicación, puede cambiar de valor en cualquier parte de código, etc. Pero una constante, tiene un valor fijo.
Una constante es similar en una canción al estribillo de la misma; cuando llega el estribillo, siempre es igual, por muy diferente que sea el resto de la canción. Por lo tanto, las constantes evitan que se escriban instrucciones continuamente en distintas partes del código, ya que asignándolas a un cierto valor, con solo llamar a esa variable, te ahorras el escribir el código. Veamos un ejemplo.
Escribimos en nuestro formulario (en el código), el siguiente código:
Y dentro del Button4, escribimos un código que muestre el resultado de la operación:
Como ves en el código, la última instrucción hace referencia a la constante PI, la cual es sustituida por su valor asignado (3.14156D). A partir de entonces siempre que llamemos a PI llamaremos a su valor añadido (3.14156D). Cualquier modificación en esta constante, afectaría a todos los lugares en los cuales se hubiese usado (NOTA: deberás añadir un valor a R para que pueda mostrar un resultado en el MsgBox).
En la zona de prácticas veremos los operadores y algunas funciones específicas que te ayudarán a comprender todos estos conceptos sencillos.