Developer's Diary

26 diciembre, 2010

Curso C# – Tipos de datos I

Buenas de nuevo a una nueva entrega del curso de c#.

En esta ocasión vamos a hablar de los tipos de datos.

.Net contiene los tipos de datos que cualquier otro lenguaje de programación puede tener: string, int, float, double, boolean, etc.

Pero hay una particularidad respecto a otros lenguajes de programación, todos ellos proceden del tipo de dato, llamado object.

Esto quiere decir, que todos y cada uno de ellos heredan de object. Como todos heredan de este tipo de dato, por llamarlo de alguna manera, .net nos permite reunir todo tipo de datos, en una misma colección. Es por ello, que si creamos una lista, podemos introducir dentro de la misma todo tipo de datos y clases, para posteriormente convertirlas en el tipo de dato que es. Gracias a que todo hereda de object, también tenemos la particularidad de que todo tipo de dato tiene el método ToString(), que nos permite convertir implicitamente cada uno de los objetos que tengamos en una aplicación.

En este articulo del curso, no vamos a explicar las caracteristicas de cada uno de los tipos de datos, si no, como debemos trabajar con cada uno de ellos, para que el desarrollo nos resulte más cómodo.

Esta parte del curso va a ser dividida en dos partes, la parte en la cual explicaremos los tipos de datos más corrientes y la segunda parte donde explicaremos como trabajar con el conjunto de varios, arrays, listas, etc.

El tipo de dato string.

Los desarrolladores que hayan comenzado con lenguajes más orientados a la máquina, como puede ser C. Sabrán que el objeto string, no deja de ser un array dinamico de char o caracteres. En mis inicios en la programación he tenido muchas peleas para poder crear cadenas de caracteres correctamente, en la actualidad, también tengo mis propias luchas con las cadenas de caracteres, pero son completamente distintas.

Trabajar con cadenas de caracteres de una manera correcta, es algo que agiliza en gran medida el trabajo de un desarrollador, siempre que en .net creamos un string, estamos creando una clase compleja que contiene en su interior una cantidad de métodos, todos estos métodos nos permiten agilizar nuestro trabajo con las cadenas, conocer y usar correctamente cada uno de esos métodos nos permite tener un 90% del trabajo solucionado, cuando trabajamos con cadenas de caracteres. Hoy vamos a explicar varios de esos métodos, para que os resulte más cómodo trabajar con las cadenas.

Contains

El método contains, nos permite poder comprobar si dentro de nuestra cadena de caracteres se encuentra la parte que indicamos.

Por lo tanto si temos una cadena en la que pone “El bebe murcielago comia placidamente”. Nosotros podemos llamar al método contains y buscar bebe y este nos devolvería true.

El ejemplo de uso sería así.

string frase = “El bebe murcielago comia placidamente”;

if(frase.Contains(“bebe”) == true)

{

//hacer algo…

}

Insert

Cuando realizamos el método insert, introducimos nuevos valores dentro de nuestra cadena de caracteres en cualquier posición. Los valores que acepta nuestro método son: el indice donde va a insertarse la cadena y el valor que vayamos a introducir. Por lo tanto:

En el caso de que tengamos la cadena “uno tres”, podremos introducir el valor “dos” justamente en la posición tres de la cadena, debemos que tener en cuenta que la posición inicial, tiene el valor cero  y la cadena quedaría de la siguiente manera. “unodos tres”

Para hacerlo solo tendríamos que poner un código similar a este:

string numeros = “uno tres”;

numeros = numeros.Insert(4 , “dos”);

Length

Aunque no sea un método, si no una propiedad. Puede resultar realmente útil, ya que con esta propiedad podemos saber la longitud de nuestra cadena en todo momento. De la propiedad recuperamos un entero, con el valor de la longitud real. Por lo que la palabra “real” nos devolvería 4.

Replace

Otro método que resulta muy interesante para usar, es el de replace, ya que este nos permite reemplazar valores dentro de nuestra cadena por otros distintos. Este método nos permite tanto reemplazar caracteres, como cadenas completas, siempre que se encuentren dentro de la misma.

De esa forma podríamos tener una cadena que sea “OOOO2222” y podríamos reemplazar todos los ceros por unos. Usando el método para caracteres así:

string codigo = “00002222”;

string codigo_cambiado = codigo.Replace(‘2’ , ‘0’);

O podríamos cambiar por ejemplo el fragmento de cadena “02” por “15”

string codigo = “00002222”;

string codigo_cambiado = codigo.Replace(“02” , “15”);


Split

Si este método no existiese, ya me hubiese encargado de hacerlo e incluirlo dentro de la clase string, hace muchisimo tiempo.

Mediante este método, podemos dividir una cadena en varias con un caracter separador. La devolución del método es un array con el cual podremos trabajar posteriormente.

Por ejemplo:

Si tuviesemos la cadena pepe,manuel,antonio,carlos

Podríamos realizar un método split indicando que el separador es , para que nos devolviese un array con nuestros cuatro nombres. Sería de la siguiente manera:

string nombres = “pepe,manuel,antonio,carlos”:

string[] nombres_separados = nombres.Split(‘,’);

Dentro del array de cadenas nombres_separados tendremos los cuatro nombres separados para poder usarlos cómodamente.

ToLower / ToUpper

Con el uso de estos dos métodos podemos transformar nuestra cadena, a los valores de minuscula o mayúscula. Reemplazando toda la cadena completamente.

Con la cadena “hola” si usaramos el método ToLower, quedaría igual, ya que se encontraba en minúsculas. Pero, usando el método ToUpper, se convertiría en HOLA.

Trim

En ocasiones, al tomar valores nos podemos encontrar que estos contienen espacios en blanco, ya sea al principio o al final de la cadena. Estos espacios en blanco, pueden provocar que las comprobaciones que hagamos posteriormente con la cadena no resulten optimas e incluso nos produzca un error en nuestra aplicación.

Aplicando este método, retiramos todos los espacios en blanco por la izquierda y derecha del final de nuestra cadena, evitando que pueda ocurrir algún fallo.

Aunque hay muchos más métodos para las cadenas de caracteres, los explicados arriba, resultan ser los más interesantes que nos proporciona .Net para un uso correcto de nuestros datos. Pero no solo nos podemos basar en el uso de cadenas de caracteres para crear aplicaciones ricas. Que ocurre cuando necesitamos hacer operaciones matematicas. En ese caso, debemos usar los tipos de datos numericos.

Dentro de los tipos de datos numericos, nos encontramos el int, double, float, uint, etc. Existen bastantes variantes, aunque para un desarrollo de aplicación sencilla, donde no necesitamos demasiada precisión y donde no trabajemos con números exageradamente grandes, solo requeriremos del int o entero y del double. Como recomendación, si sabemos que vamos a realizar operaciones aritmeticas, en las cuales vamos a tener decimales, solo tendríamos que usar double, ya que con este tipo de dato evitaremos redondeo y perdida de valores.

A diferencia del string, los tipos numericos no poseen métodos que nos puedan resultar de utilidad, todos los métodos que podamos usar para los tipos numericos se encuentran en el espacio de nombres Math.

Finalmente, debemos conocer aunque sea superficialmente la conversión de tipos. Dentro de C#, como ocurre en otra gran cantidad de tipos de lenguajes, la conversión de tipos es necesaria para un correcto funcionamiento. En .Net, gracias al método ToString, podemos solventar gran parte de esas conversiones. No obstante, la clase Convert, nos permite convertir todos los tipos de datos.

Si por ejemplo, quisieramos convertir una cadena de caracteres que sabemos que es numerica a un número solo tendríamos que usar el método ToInt32(). De la siguiente manera:

string numero = “2”;

int valor = System.Convert.ToInt32(numero);

Si hubiesemos introducido alguna letra dentro de esa cadena de caracteres, nos hubiera producido una excepción, el realizar las conversiones es una tarea en la que debemos tener sumo cuidado, sobretodo, cuando el usuario esta en esa transacción, ya que si no contemplamos correctamente el cambio de valores, puede resultar un error de gran medida.

Debemos saber elegir que tipo de dato hay que usar en cada momento, para poder realizar una transacción correcta. Imaginemos por un momento, un programa bancario creado únicamente con valores enteros, sin incluir decimales. Tendríamos una gran perdida de datos, que produciría un caos.

Hasta aquí nuestra pequeña lección de tipos de datos, aunque no haya querido profundizar en las caracteristicas de cada uno de ellos, ya que existen muchos datos al respecto, espero que os haya sido de ayuda. Pero aún así, no dudeis en preguntar en el área de comentarios.

Un saludo.

Anuncios

1 comentario »

  1. […] Estructuras de repetición. – Manejo de los controles básicos I , II , III. – Varios formularios – Tipos de datos. – Creación de clases. – Creación de clases II. – Control de ficheros. – Control de base de […]

    Pingback por Curso C# « Developer's Diary — 3 enero, 2011 @ 7:31 AM


RSS feed for comments on this post. TrackBack URI

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

A %d blogueros les gusta esto: