Está en la página 1de 4

Variables y constantes

Disponer de todos estos tipos de datos no tendra ningn sentido si no los pudiramos usar de alguna otra forma que de forma literal. Y aqu es donde entran en juego las variables y constantes. Definamos brevemente estos conceptos. Las constantes son valores que nunca cambian y pueden ser de dos tipos: Constantes literales, por ejemplo, cuando usamos 12345, estamos usando un valor constante, ya que ese nmero siempre tendr el mismo valor. Constantes con nombre, son constantes a las que le damos un nombre y tampoco pueden cambiar. Por otro lado, las variables son como las constantes con nombres, pero su valor es variable, por tanto, puede que no siempre tengan el mismo valor, de ah que se llamen variables.

Declarar constantes
Las constantes literales las usamos directamente, tal como hemos visto anteriormente, pero para usar las constantes con nombre debemos declararlas previamente, para ello utilizaremos la instruccin const, tal como vemos en este ejemplo:
const int maximo = 12345678;

Como podemos comprobar, tenemos que utilizar una instruccin para indicar que es una constante, (const), seguida del tipo de datos y el valor que le asignaremos a esa constante.

Consejo para usar las constantes


Siempre que tengamos que indicar un valor constante, ya sea para indicar el mximo o mnimo permitido en un rango de valores o para comprobar el trmino de un bucle, deberamos usar una constante en lugar de un valor literal, de esta forma si ese valor lo usamos en varias partes de nuestro cdigo, si en un futuro decidimos que dicho valor debe ser diferente, nos resultar ms fcil realizar un solo cambio que cambiarlo en todos los sitios en los que lo hemos usado, adems de que de esta forma nos aseguramos de que el cambio se realiza adecuadamente y no tendremos que preocuparnos de las consecuencias derivadas de no haber hecho el cambio en todos los sitios que deberamos.

Declarar variables
En la declaracin de las variables en Visual C# 2005, siempre hay que indicar el tipo de datos que tendr la variable, por la sencilla razn de que las variables definidas en C# siempre se harn usando el tipo de datos sin necesidad de utilizar ninguna instruccin especial que indique que es una declaracin. Por ejemplo, en este ejemplo, estamos declarando una variable de tipo int y otra de tipo decimal:
int i; decimal m;

Tambin podemos declarar ms de una variable en la misma sentencia. Lo nico que tendremos que hacer es separar las variables con comas. Por ejemplo, el siguiente cdigo definimos tres variables del tipo int:
int a, b, c;

Declarar variables y asignar el valor inicial


Cuando declaramos variables en C#, estas estarn en un estado "no iniciado", es decir, no tendrn ningn valor inicial asignado de forma automtica, salvo cuando estas variables estn definidas como campos de una clase. Por tanto, si queremos que en C# tengan un valor inicial, tendremos que asignarlos de forma expresa. Por ejemplo:
int a = 10;

En esa misma lnea podemos declarar y asignar ms variables, simplemente separndolas con comas:
int b = 12, c = 15;

Si queremos declarar ms de una variable pero con tipos diferentes tendremos que separarlas con un punto y coma, que es la forma de decirle al compilador que es una nueva instruccin, por tanto esta declaracin:
decimal m = 22.5M; double d = 55.556;

Ser lo mismo que esta otra:


decimal m = 22.5M; double d = 55.556;

Como es natural, a una variable podemos asignarle el contenido de una constante "con nombre" que previamente hayamos declarado, esa asignacin tambin podemos hacerla al declarar la variable:
const int maximo = 12345678; int i = maximo;

El tipo de datos char


Tal como comentamos anteriormente, el tipo char de C# es un caso especial, realmente es un carcter Unicode, pero internamente es un valor int. Veamos primero cmo declarar variables (o constantes) de tipo char y despus veremos que realmente son enteros (o al menos que en algunas circunstancias se comportan como tales):
char c1 = 'a'; char c2 = (char)49;

En la primera declaracin utilizamos una constante literal para asignarla a una variable de tipo char. Esa constante la indicaremos entre comillas simples. En la segunda usamos una conversin explcita de un tipo numrico entero a un valor char. Al ser un valor entero, podremos hacer operaciones aritmticas con variables de ese tipo, aunque el resultado siempre ser un valor entero, no un carcter. En este cdigo sumamos el valor de las dos constantes y lo asignamos en una variable de tipo int:
int i2 = c1 + c2;

Nota: En la tabla 2.3 tenemos una lista de los tipos de datos que podemos convertir de forma implcita a char.

Si queremos volver a convertir el contenido de la variable i en un valor de tipo char tendremos que hacer una conversin (cast) o bien usar la clase Convert.
char c3 = (char)i2; char c4 = Convert.ToChar(i2);

Cadenas de caracteres
Las cadenas de caracteres en .NET, y por tanto en C#, se definen indicando la cadena entre comillas dobles. Tal como vimos en la tabla 2.1, la instruccin para declarar cadenas es string:
string s1 = "Hola, ";

Tal como indicamos en el comentario de esa tabla, las cadenas de C# son inmutables, es decir una vez que hemos creado una cadena y la modificamos, se crear una nueva cadena y se desechar la cadena anterior. Por ejemplo, si hacemos esto:
s1 = s1 + "mundo";

Se crear una nueva cadena en la que asignar el contenido de las dos usadas en la expresin de la derecha de la asignacin, el contenido anterior de la variable s1 se desechar y se usar el resultado de unir lo que hubiera antes en esa variable ms la cadena que indicamos despus del signo igual. Para paliar este pobre rendimiento de las cadenas en .NET, podemos usar la clase StringBuilder, la cual deberamos usar preferentemente cuando realicemos concatenaciones o uniones de cadenas, ya que esa clase no crea nuevas instancias y para ello se utilizan mtodos que nos permiten realizar esa unin de cadenas; el ejemplo anterior lo podemos convertir de esta forma:
StringBuilder sb = new StringBuilder(); sb.Append("Hola, "); sb.Append("mundo");

Nota: Si vamos a hacer ms de dos o tres concatenaciones, es recomendable utilizar un objeto del tipo StringBuilder para hacer esas uniones de cadenas y despus usar el mtodo ToString() del objeto StringBuilder para recuperar la cadena completa.

También podría gustarte