viernes, 3 de abril de 2015

Conversiones implícitas y explicitas en C#


Hay tipos de datos que tienen que tiene un tipo, y de de repente se necesitan cambiar para usarlo en otro proceso, aqui se explica como se hace esa conversión.
Como convertir tipos de variable
Puede topar con una situación en la que tenga una variable de un tipo, pero necesita trabajar con un fragmento de código que necesite otro tipo. Si, por ejemplo, esta trabajando con una variable de tipo int y necesita pasar el valor a una función que requiere el uso de una variable de tipo long, entonces necesita realizar una conversión de la variable int en variable long.
C# admite dos tipos de conversiones, conversiones implícitas y conversiones explicitas.


Conversiones Implícitas

El compilador de C# realiza automáticamente las conversiones implícitas. Examine el siguiente código: 
int IntergerVariable;
long LongVAriable;

IntergerVariable = 123;
LongVariable = IntergerVariable;
En este código, a una variable de tipo entero se le asigna el valor 123 y a una variable long se le asigna el valor de la variable de tipo entero. Cuando se ejecute este código, el valor de  LongVariable es 123.
El compilador de C# convierte el valor de la variable de tipo entero a un valor long porque la conversión de un valor int a un valor long es una de las conversiones implícitas permitidas por C#.

Conversiones explicitas

Si escribe código que intente convertir un valor que use tipo no administrados por una conversión implícita, el compilador de C# genera un error, como muestra el siguiente código: 
char CharacterVariable;
int IntergerVariable;

IntergerVariable = 9;
CharacterVariable = IntergerVariable;
El compilador de C# produce el siguiente error: 

error CS0029: No se puede convertir implícitamente el tipo 'int' a 'char'

Este error se produce porque ninguna conversión implícita admite la conversión de una variable int a una variable char variable.
Si realmente necesita hacer esta conversión, tiene que realizar una conversión explicita. Las conversiones explicitas se escriben en su código fuente y el dicen al compilador "haz que se produzca esta conversión, aunque no pueda ser realizada implícitamente". Escribir una conversión explicita en el código C# requiere colocar el tipo al que esta convirtiendo entre paréntesis. Las paréntesis se colocan justo antes de la variable que esta usando como fuente de la conversión. A continuación se incluye el código anterior pero usando una conversión explicita: 
char CharacterVariable;
int IntergerVariable;

IntergerVariable = 9;
CharacterVariable = (char)IntergerVariable;
Esta técnica es conocida como conversión de la variable de tipo entero a una variable de tipo carácter. Algunos tipo no pueden ser convertidos, ni siquiera mediante una operacion de conversión explicita.

También puede realizar conversiones explicitas sobre tipos de valor convirtiendo explicitamente el valor al tipo apropiado, como se muestra en el siguiente ejemplo. C# permite usar un operador de conversión explicita incluso con conversiones implícitas, si lo desea:
int IntergerVariable;
long LongVariable;

IntergerVariable = 123
LongVariable = (long)IntergerVariable;
Esta sintaxis no es necesaria, porque C# permite conversiones implicitas de variables int a variable long, pero puede escribirlo si quiere.

Fuente: Aqui 

1 comentario: