lunes, 11 de febrero de 2013

Lenguaje C# Parte 2. 1 Conversiones


Lenguaje C# Parte 2. 1

Conversiones de Tipos 

La conversión se refiere a la capacidad de cambiar un objeto de un tipo a otro. Se trata de una característica relativa al tiempo de ejecución, en lugar de al tiempo de compilación. Las conversiones pueden ser implícitas o explícitas; las conversiones implícitas tienen lugar cuando es posible una conversión automática, mientras que las conversiones explícitas se invocan cuando existe la posibilidad de un error ó pérdida de datos.

Conversión boxing y unboxing 

La unificación del sistema de tipos define también técnicas denominadas boxing y unboxing . Aquí es donde los tipos primarios y los tipos de referencia pueden utilizarse indiferentemente. Las conversiones boxing y unboxing permiten tratar los tipos de valor como objetos. La aplicación de la conversión boxing a un tipo de valor, empaqueta el tipo en una instancia del tipo de referencia Object. Esto permite almacenar el tipo de valor en la pila del recolector de elementos no utilizados (garbage collector). La conversión unboxing extrae el tipo de valor del objeto.

Boxing 

Es el proceso usado para convertir un tipo primitivo en un tipo de referencia. Para implementar esto, lo único que hace falta es asignar el tipo primitivo a un objeto.

Unboxing 

Es el proceso contrario al boxing, ya conocemos el tipo subyacente de un objeto que ha sido convertido (boxed), por lo tanto, lo único que debemos hacer es devolver al objeto a su tipo primitivo original, asignándolo de nuevo a un campo de su tipo primario original.

Conversiones Implícitas 

Las conversiones implícitas tienen lugar de forma automática, sin necesidad de ninguna sintaxis ni ensayo adicional. Por ejemplo, la conversión de int a long.


DeA
shortintlongfloatdouble o decimal
shortushortintuintlongulongfloatdouble o decimal
intlongfloatdouble o decimal
intuintlongulongfloatdouble o decimal
longfloatdouble o decimal
longulongfloatdouble o decimal
floatdouble o decimal
ushortint, uint, longulong, float, double o decimal
double
floatdouble o decimal


Conversiones Explícitas 

Este tipo de conversión es requerida cuando existe la posibilidad de una pérdida de datos o la aparición de un error. Para implementar este tipo de conversión, se ha de insertar un operador cast delante de la expresión de origen. Un operador cast no es más que el nombre del tipo que va a ser convertido, encerrado entre paréntesis.

Conversiones con Parsing 

El parseo de información, se trata de otro mecanismo para poder llevar información desde un string a un tipo de dato. Esta acción es facilitada por el método Parse() que implementan los tipos numéricos y de fecha.
A diferencia del proceso de casting de la conversión explícita, si el valor a convertir excede la capacidad del tipo de dato se producirá una excepción del tipo OverflowException , dando aviso del desbordamiento. Otra consideración de excepción se da cuando el valor literal no puede ser traducido al tipo destino como en el siguiente ejemplo: 
Para evitar que se pueda producir una excepción al momento de realizar el parsing, C# provee de un método para evaluar el parsing antes de realizarlo mediante el método TryParse(), este realizará una evaluación y retornará un valor del verdad indicando el éxito del proceso y adicionalmente el valor convertido en una variable de salida (out). 

DESCARGAR DEMO






________________________________________________________________________

1 comentario:

  1. En viajes el corte inglés buscamos personas talentosas como tú!, si estas interesado en trabajar en una empresa global y estable envíanos tu cv actualizado a enarvaez@viajeselcorteingles.cl te estamos esperando!

    ResponderEliminar