> Manuales > Manual de C#

Explicamos cómo crear variables en C#, cómo indicar el tipo de datos de las variables y las implicaciones del lenguaje, que es de tipado estático. Veremos también cuáles son los tipos de datos primitivos disponibles en C#.

Variables y Tipos en C#

C# es un lenguaje moderno, siendo una de sus principales caracerísticas su tipado estático. En otras palabras podemos decir también que C Sharp es fuertemente tipado, lo que quiere decir que los tipos de datos tienen un papel protagonista a la hora de escribir programas. Por ejemplo, para crear una variable en C# necesitamos indicar el tipo de dato que va a contener. Además, una vez creada una variable con un tipo, no podremos cambiarla y asignarle un tipo distinto en el futuro.

En este artículo vamos a hablar un poco de las cuestiones alrededor de los tipos, viendo algunos ejemplos de variables y cosas que podemos y no podemos hacer.

Existe toda una familia de lenguajes de tipado dinámico muy populares, como Javascript o PHP, que seguro son el día a día de muchos otros lectores. Para ellos puede que les resulte todo un incordio esto de tener que tipar las variables, pero ya vamos a adelantar que el tipado forma toda una red de seguridad en la programación y permite al compilador alertarnos sobre muchos posibles errores que cometemos, evitando que lleguen alguna vez a producción. Dicho de otra manera, tipar las variables puede resultar un poco más de trabajo, pero es toda una ventaja para las aplicaciones profesionales.

Declaración de una variable en C#

Una variable se declara en C# indicando el tipo que va a contener y luego el nombre de la variable que estamos declarando.

string nombre;

Esta es una variable de tipo "string", que consiste en una cadena de caracteres.

Si lo deseamos, podemos declarar variables y asignar el valor que contendrán, de una vez;

string saludo = "Hola Miguel";

Esta variable "saludo" es de tipo string y el valor que hemos asignado es la cadena "Hola Miguel".

Tipos primitivos en C#

Se llaman tipos primitivos a los tipos de datos simples que pueden tener las variables, es decir, todos los tipos de valores básicos que podemos usar, sin entrar en estructuras más complejas como podrían ser los objetos o arrays.

En C# disponemos de los siguientes tipos de datos primitivos:

Boleanos

El boleano es el tipo que guarda un valor positivo o negativo, un sí o un no.

bool esVerdad = true;

Números enteros

Existen varios tipos de datos enteros, dependiendo de la capacidad. Además puedes tenerlos con y sin signo. Para los tipos de datos enteros y con signo, de menor capacidad a mayor capacidad son tenemos los siguientes:

int numeroEntero = -33;

Además, podemos tener los números enteros con signo, que serían los mismos, pero con una "u" delante:

Como tipos de datos enteros menos usados tenemos también el byte y sbyte, que tienen solo capacidad de 8 bit.

Números con coma flotante

Los números en coma flotante son lo que llamamos comúnmente en matemáticas como enteros con decimales. Existen de tres tipos:

double flotanteDouble = 13.5;

Aquí es interesante mencionar que los literales expresados en coma flotante para almacenar el variables de tipo float deben contener una "f" al final.

float flotante = 13.5f;

Un literal en términos de lenguajes de programación es un valor escrito en el código directamente, que generalmente asignaremos a una variable o entregaremos como parámetro a una función. Es simplemente eso, un valor. Por ejemplo literal de entero sería cualquiera de los valores que podemos asignar a una variable de las de tipo entero (un número sin decimales). Un literal de string es cualquier cadena de caracteres expresada entre comillas, etc.

Estos son los tipos de datos en coma flotante más comunes, sin embargo también tenemos un tipo de datos llamado "decimal", que sería un float aporta todavía más alcance de valores (más capacidad para valores grandes) que se puede usar para cálculos financieros y monetarios.

Otros tipos de datos en C#

Existen otros tipos de datos en C# que merece la pena comentar, comenzando por las cadenas o "string" que en C# son objetos, pero a la hora de declararlas el aspecto es idéntico a la declaración de un tipo de datos simple.

Además tenemos también el tipo de datos char, que sirve para almacenar un único carácter Unicode, si fuera necesario.

También tenemos un tipo de datos llamado object, que es el tipo básico de todos los objetos, el DateTime que se encarga de trabajar con fechas y tiempo que veremos ejemplos si acaso más adelante. Para consultar más detalles y la lista completa puedes acceder a la documentación de C# para tipos de datos incorporados.

Tipado estático

Volvemos sobre el concepto de tipado estático para ver qué cosas no podríamos hacer en el código C#, a modo de ejemplo.

Por ejemplo, si declaramos un entero, en C# no podremos colocarle una cadena con valor numérico:

int entero = "333"; // Esto dará un error al compilar

Si tenemos una variable flotante, no podremos asignarle un literal de double:

float conDecimales = 45.9;

Si una variable nace con un tipo de datos, como por ejemplo string, no podremos más adelante asignarle cualquier cosa que no sea del tipo string.

int num = 44;
string txt = "";
txt = num; // Esto dará un error
txt = 55; // Esto tampoco es correcto

Evidentemente, pueden surgir miles de situaciones en las que queramos introducir un número en una cadena y el lenguaje es perfectamente capaz, sin embargo necesitaremos realizar una conversión explícita del valor numérico a un valor cadena de caracteres.

int num = 44;
string txt = "";
txt = num.ToString(); // Esto sí funcionará

Valores nulos (null)

Los tipos simples de C# no incluyen null como uno de sus posibles valores. Esto es porque son tipos de datos primitivos y no tipos de datos complejos como los objetos o cadenas (recordemos que las los valores de string son en realidad objetos aunque las creemos como si fueran valores primitivos).

Por tanto, una cadena podría tener el valor null:

string nombre = null;

Pero no podríamos asignar el valor null a una variable de tipo int, por ejemplo.

int num = null; // Esto da error

Conclusión

Con todo esto hemos tenido un recorrido sobre los tipos de datos en C#. Si vienes de lenguajes como Javascript habrás observado que C Sharp es mucho más rico en lo que respecta a tipos de datos. En este artículo hemos conocido los tipos de datos primitivos, o tipos de datos básicos, pero luego descubrirás que por medio de las clases puedes crear cualquier tipo de datos complejo, aumentando todavía más las posibilidades del lenguaje.

Trabajar con tipos de datos puede costar un poco al principio, pero como todo es cuestión de acostumbrarse. C# siempre te alertará en el momento de compilación sobre cualquier problema que surja con el tipado de tus variables, aportando una gran ayuda a la hora de trabajar con el lenguaje.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual