Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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;
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;
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;
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.