Un variable no es más que un espacio de memoria que almacena valores. Estos valores podrán ir cambiando a lo largo del desarrollo del programa según nuestras necesidades, por ejemplo, para realizar operaciones aritméticas. Veamos el siguiente código:
Las cuatro variables declaradas serán sólo visibles dentro del bloque de código en el que están encerradas, en este caso dentro del método 'Main'. Tenemos tres variables, cada unoa de un tipo diferente: 'a' es de tipo de cadena de texto, 'b' es del tipo de número real y 'c' es del tipo entero. Cada una de ellas ha sido inicializada con un valor, pero la asignación de valor puede realizarse más adelante en otro punto de la ejecución del programa, como ha sido el caso de la variable 'd', que posteriormente ha recibido el valor de la variable 'b'. Finalmente, la línea 'System.Console.ReadKey();' será la encargada de no finalizar el programa hasta que se pulsa un carácter cualquiera del teclado.
Como resultado de ello, el programa dará la siguiente salida por la consola: Mi variable de texto 2,3 2 2,3
Hay multitud de tipos de variables, según nuestras necesidades para ellas: 'sbyte', 'short', 'int', 'long', 'char', 'float', 'double', 'decimal' y 'bool'. Las cinco primeras con de tipo entero, las tres siguientes son de tipo real y la última podrá almacenar los valores 'verdadero' (true) o 'falso' (false).
Es importante, a efectos de no despilfarrar memoria, hacer uso de los tipos correctos para cada variable según vaya a ser su uso. Es decir, sería un despilfarro utilizar una variable de tipo 'double' si sólo vamos a almacenar en ella números enteros. Por ello, la siguiente tabla nos será de gran ayuda:
byte | System.Byte | 0 a 255 |
---|---|---|
sbyte | System.SByte | -128 a 127 |
short | System.Int16 | -32768 a 32767 |
ushort | System.Uint16 | 0 a 65535 |
int | System.Int32 | -2147483648 a 2147483647 |
uint | System.Uint32 | 0 a 4294967295 |
long | System.Int64 | -9223372036854775808 a 9223372036854775807 |
ulong | System.UInt64 | 0 a 18446744073709551615 |
float | System.Single | ±1.401298E-45 a ±3,402823E+38 |
double | System.Double | ±4,94065645841246E-324 a ±1,79769313486232E+308 |
decimal | System.Decimal | -7,9228162514264337593543950335 a 7,9228162514264337593543950335 |
char | System.Char | '\u0000' a '\uFFFF' |
bool | System.Boolean | 'true' o 'false' |