Fundamentos de programación. Variables en C#

Para la realización de este artículo he utilizado Debian Squeeze 6.0.7 como SO y MonoDevelop 2.2 como entorno de desarrollo.

Quizás de los conceptos más importantes en el desarrollo de la programación son las variables.

Un programa que no pudiera dejar modificar sus datos sería de nula o muy poca utilidad.

Pongo un pequeño ejemplo con el tradicional “Hola mundo” realizado en C#:

using System;
namespace BlogEjemploVariables1
{
	class MainClass
	{
		public static void Main(string[] args)
		{
			Console.WriteLine("Hola Mundo!");
			Console.Read();
		}
	}
}
MonoDevelop. IDE de programación .NET Framework en GNU/Linux

BlogEjemploVariables1

Y cuando ejecutamos, veamos el resultado:

Consola externa de MonoDevelop

BlogEjemploVariables 1. Resultado

El programa compila y se ejecuta correctamente, pero ¿tiene alguna utilidad?.
Si nuestro cometido es exclusivamente saludar al mundo, sin ninguna duda que la tiene.

Pero dudo que solamente pretendamos esto como desarrolladores.

Para que los programas sean dinámicos y puedan fluir con datos, se debe utilizar variables.
Como su propio nombre indica, las variables pueden cambiar de valor a lo largo de la ejecución del programa.
Realicemos ahora el mismo “Hola Mundo”, pero esta vez utilizaremos una variable.

using System;
namespace BlogEjemploVariables2
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			string variable;
			variable = "Hola Mundo!";
			Console.WriteLine(variable);
		}
	}
}
MonoDevelop. IDE de programación .NET Framework en GNU/Linux

BlogEjemploVariables2

Dentro de este código hemos declarado una variable y  le hemos dado un valor.
Ahora veremos que sucede cuando ejecutamos la aplicación:

Consola externa de MonoDevelop

BlogEjemploVariables2. Resultado

Pues parece que exactamente lo mismo, pero en realidad no es así. Al declarar la variable en el segundo ejemplo, ahora podemos referirnos a ella dentro del código del programa y cambiar su valor todas las veces que deseemos o nos interese.
Mostraré ahora un tercer ejemplo con todo esto que he dicho anteriormente:

using System;
namespace BlogEjemploVariables3
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			string variable;
			variable = "Hola Mundo!";
			Console.WriteLine(variable);
			variable = "Ahora no soy Hola Mundo!";
			Console.WriteLine(variable);
			variable = "Ahora no se ni lo que soy...");
			Console.WriteLine(variable);
			Console.Read();
		}
	}
}
MonoDevelop. IDE de programación .NET Framework en GNU/Linux

BlogEjemploVariables3

En este fragmento de código hemos vuelto a declarar la variable, pero hemos cambiado su valor en tres ocasiones dentro de la aplicación y hemos pedido al programa que nos muestre ese valor en la ventana.
Veamos el resultado:

Consola externa de MonoDevelop

BlogEjemploVariables3. Resultado

Como podemos observar, el cambio se ha hecho efectivo y progresivamente variable ha ido cambiando su valor y mostrándonos en pantalla su contenido.

La estructura básica de una variable dentro de C# es la siguiente:

tipo de dato + identificador de variable

En nuestro ejemplo string es el tipo de dato, que en esta ocasión representa una cadena de caracteres.
Como identificador de nuestra variable hemos escogido la palabra variable (así de redundante soy), pero podríamos haber escogido cualquier palabra.
En C# son sensibles las mayúsculas y las minúsculas, por lo que, por ejemplo, variable, Variable y vARIABLE son distintos identificadores.

El tipo de datos es importante, puesto que además de darnos la cantidad de memoria que ocupará nuestra variable (no ocupa la misma cantidad de memoria un número entero que un número decimal, este último ocupa mucho más), además nos limita la cantidad de operaciones que podemos realizar con dicha variable.
No tiene lógica intentar operaciones aritméticas con caracteres alfanuméricos, esto solo son representaciones de sus grafos pero no sus valores cuantitativos.

Es decir, veamos que sucede cuando intentamos compilar esta aplicación:

using System;
namespace BlogEjemploVariables4
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			string variable;
			variable = "1";
			Console.WriteLine(variable);
			string variable2;
			variable2 = "1";
			Console.WriteLine(variable2);
			string variable3;
			variable3 = variable + variable2;
			Console.WriteLine(variable3);
			Console.Read();
		}
	}
}
MonoDevelop. IDE de programación .NET Framework en GNU/Linux

BlogEjemploVariables4

Según este fragmento de código, vamos a realizar la suma de variable y de variable2, cuyo valor es 1. Le he pedido al programa que me muestre primero en pantalla el valor de ambas y luego me muestre en último lugar la suma.
Veamos que sucede cuando ejecutamos este programa:

Consola externa de MonoDevelop

BlogEjemploVariables4. Resultado

Esto no era lo esperado, ¿verdad?. Pues si, en realidad si, puesto que el tipo de datos string nos da acceso a caracteres alfanuméricos (representación gráfica de letras y números, elementos ASCII o UNICODE para ser exactos), pero no a su valor. Así que la suma del grafo 1 y del grafo 1 no son 2, sino el grafo 11.
Si lo que queremos sumar son los valores de lo que representan estos grafos, debemos utilizar otros tipos de datos como short o integer.
Veamos ahora:

using System;
namespace BlogEjemploVariables5
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			short variable;
			variable = 1;
			Console.WriteLine(variable);
			short variable2;
			variable2 = 1;
			Console.WriteLine(variable2);
			short variable3;
			variable3 = Convert.ToInt16  (variable1 + variable2);
			Console.WriteLine(variable3);
			Console.Read();
		}
	}
}
MonoDevelop. IDE de programación .NET Framework en GNU/Linux

BlogEjemploVariables5

El fragmento de código ya es bastante distinto según nuestro editor, como se puede comprobar a simple vista. Veamos que ocurre con la ejecución:

Consola externa de MonoDevelop

BlogEjemploVariables5. Resultado

Este es el resultado que queríamos obtener. Y demuestra que el tipo de datos elegido afecta esencialmente al resultado del programa.
Otro ejemplo de su importancia sería la cantidad de memoria que consume nuestro programa según el tipo de datos que hemos seleccionado.
No consume la misma memoria si queremos guardar valores enteros como short o integer que valores decimales como decimal o double.
En programas sencillos como los que estoy poniendo de ejemplo, la diferencia de consumo es despreciable o nula, pero en programas mucho más complejos, la elección correcta en el tipo de datos podrá ayudarnos a que nuestra aplicación sea eficiente en consumo.

Espero que os haya gustado, cualquier comentario o duda, estoy a vuestra disposición en este blog, mi correo jose.antonio.seguido@gmail.com o en mis redes sociales que encontraréis en el menú de la derecha.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s