ASánchezDíaz

Autoaprendiendo .NET y otras cosas


Manual C# – Capítulo 1.2. Variables

En el capítulo anterior vimos lo que son los namespaces en C#, en este nos centraremos en las variables.

Una variable es un espacio en memoria que almacena un valor con el que se puede trabajar. Imaginemos que queremos programar una calculadora que realice una suma. Necesitaremos al menos tres variables, una que almacene el primer sumando, otra el segundo sumando y otra el resultado. El valor que se indique para la primera variable será sumado al valor que se indique para la segunda variable y el resultado se almacenar´ka en la tercera.

a = 1;
b = 2;
c = a + b;

Para declarar una variable en C#, la sintaxis es la siguiente:

<visibilidad> <tipo> <nombre>;

Opcionalmente podemos inicializar la variable asignándole ya un valor, o hacerlo posteriormente:

<visibilidad> <tipo> <nombre> = <valor>;

Por ejemplo:

private int numero = 1;

Hemos declarado una variable, indicando que su visibilidad es private, o sea, sólo visible desde el ámbito en el que se declara, es del tipo int (integer, número entero), su nombre es numero y le hemos asignado el valor 1.

Visibilidad
Ya hemos hablado sobre la visibilidad en C#. No está de más ampliar un poco este concepto indicando que un objeto en C# declarado como private es sólo visible (accesible) en su ámbito, es decir, en el ámbito dónde se ha declarado. Si declaramos la variable en el ámbito de una clase, podrá ser accesible desde dentro de la clase entera, pero no desde fuera de la clase. Si la variable se ha declarado dentro de un método o propiedad, sólo podrá ser accesible desde dentro del método o propiedad:

class Clase
{
	private int numero;

	propiedad
	{
		//numero es accesible desde aquí

		private int numero2;
		//numero2 es accesible desde aquí
	}

	método
	{
		//numero es accesible desde aquí
		//numero2 NO es accesible desde aquí
	}

	//numero es accesible desde aquí
	//numero2 NO es accesible desde aquí
}

Intuitivamente se puede hablar de ámbito como el espacio incluido entre dos llaves { y }.

Tipo
El tipo de una variable es necesario para saber que tipo de valor almacenará esa variable. Una analogía de la vida real que se suele usar para tener esto más claro es imaginarnos una reunión de profesionales, en la que hay abogados, ingenieros, contables… Si llegamos a esa reunión y nos presentan a uno de estos profesionales, nos faltará información si sólo nos dicen “éste es Antonio” o “te presento a Juan”. Es mucho más conveniente que nos digan “éste es el ingeniero Antonio” o “te presento al abogado Juan”.

private int (abogado) numero (Juan);

Los tipos más usados en C# son:

Tipo Tipo de valor Ejemplo
int Número entero 5
string Cadena de texto “Me llamo Antonio” o “123”
bool Valor booleano  true o false
char Carácter ‘a’ ó ‘,’ ó ‘1’
float Valor en coma flotante 1.5 ó 5.3

Para una información más completa de tipos, visita: Tipos

Fíjate que podríamos sumar dos variables de tipo int, por ejemplo:

int a = 2;
int b = 3;
int c = a + b;

y el resultado sería 5, pero, ¿podemos sumar tipos string? La respuesta es sí, pero lo que hace C# es concatenar los valores, por ejemplo:

string texto1 = "Hola";
string texto2 = "me llamo Antonio";

La suma de estas dos cadenas de texto es:

texto1 + texto2 = “Holame llamo Antonio”
texto2 + texto1 = “me llamo AntonioHola”

Pero… ¿podemos sumar una variable de tipo string y otra del tipo int? Pues no siempre y por supuesto haciendo una conversión de tipos. Una conversión de tipos es un procedimiento por el cual un tipo se convierte en otro.

Si tenemos las variables:

int variable1 = 2;
string variable2 = "3";

Podemos sumarlas aritméticamente de la forma:

int variable3 = variable1 + Convert.ToInt32(variable2);

el resultado es 5

traducido sería “suma el valor de la variable1 al valor convertido a int de la variable2”.

Otra opción:

string variable3 = variable1.ToString() + variable2;

el resultado es “23”

Por lo tanto es muy importante saber para sumar (o hacer cualquier otra operación) los tipos han de ser los mismos, y si no lo son habrá que convertirlos. Profundizaremos más en el método Convert más adelante.

Nombre
También se denomina identificador al nombre de una variable.
El nombre que asignemos a la variable debe cumplir una serie de requisitos y respetar una serie de restricciones.

Hay en C# y en la mayoría de lenguajes, palabras reservadas que no podemos usar para nombrar variables, por ejemplo, no podemos llamar a una variable “int” o “string” porque son palabras reservadas que el lenguaje usa.

El nombre de una variable tampoco puede empezar con un número pero si pueden contenerlo, así los identificadores “1variable” o “2posicion” no son válidos, porque comienzan con un número. Sin embargo, los identificadores “variable1” o “posicion2” son válidos.

Los identificadores pueden comenzar con el carácter “_”, por ejemplo, “_variable”.

C# es sensible a mayúsculas y minúsculas, por lo que los identificadores “variable” y “Variable” son distintos..

Un identificador no puede tener más de 511 caracteres… aunque no se me ocurre que finalidad puede tener ponerle un identificador a una variable de más de 511 caracteres que sepas que no puedes.

Y para terminar, una recomendación. Se considera una buena práctica crear identificadores con palabras compuestas de la siguiente forma:

posicionJugador
primerClasificado

que es mucho más legible que:

posicionjugador
primerclasificado

También es muy recomendable crear identificadores que nos ayuden a mantener el código con más facilidad. Podemos crear una variable llamada “nemp” para guardar valores relacionados con el número de empleados de una empresa, pero si después de un tiempo, por ejemplo, un año, tenemos que retocar el código puede que no recordemos bien a qué narices se refería “nemp”. Sin embargo, creando el identificador “numeroEmpleados” será más fácil.

En el siguiente capítulo trataremos los operadores (suma, resta, multiplicación, división, lógicos…)

Hasta pronto.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *