ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Conversiones Implicitas Y Explicitas


Enviado por   •  7 de Septiembre de 2012  •  1.102 Palabras (5 Páginas)  •  1.029 Visitas

Página 1 de 5

Conversiones de tipos en C#

Dado que a C# se le asignan tipos estáticos en tiempo de compilación, después de declarar una variable, no se puede volver a declarar ni tampoco utilizar para almacenar valores de otro tipo, a menos que dicho tipo pueda convertirse en el tipo de la variable. Por ejemplo, no existe conversión de un entero a una cadena arbitraria cualquiera. Por lo tanto, después de declarar i como entero, no puede asignarle la cadena "Hello", como se muestra en el código siguiente.

int i;

i = "Hello"; // Error: "Cannot implicitly convert type 'string' to 'int'"

Sin embargo, en ocasiones puede que sea necesario copiar un valor en un parámetro de método o variable de otro tipo. Por ejemplo, puede que tenga una variable de tipo entero que deba pasar a un método cuyo parámetro es de tipo double. Estos tipos de operaciones se denominan conversiones de tipos. En C#, puede realizar los siguientes tipos de conversiones:

• Conversiones implícitas: no se requiere una sintaxis especial porque la conversión se realiza con seguridad de tipos y no se perderán datos. Entre los ejemplos se incluyen las conversiones de tipos enteros de menor a mayor y las conversiones de clases derivadas en clases base.

• Conversiones explícitas (conversiones de tipos): las conversiones explícitas requieren un operador de conversión. Las variables de origen y destino son compatibles, pero existe el riesgo de perder datos debido a que el tipo de la variable de destino es más pequeño que (o es una clase base de) la variable de origen.

• Conversiones definidas por el usuario: las conversiones definidas por el usuario se realizan a través de métodos especiales que puede definir para habilitar las conversiones explícitas e implícitas entre tipos personalizados que no tienen una relación de clase base-clase derivada. Para obtener más información, vea Operadores de conversión (Guía de programación de C#).

• Conversiones con clases auxiliares: para realizar conversiones entre tipos no compatibles, como los enteros y los objetos System..::.DateTime, o bien cadenas hexadecimales y matrices de bytes, puede utilizar la clase System..::.BitConverter, la clase System..::.Convert y los métodos Parse de los tipos numéricos integrados, como Int32..::.Parse..

Conversiones implícitas

En los tipos numéricos integrados, puede realizarse una conversión implícita cuando el valor que se va a almacenar puede ajustarse a la variable sin necesidad de truncamiento o redondeo. Por ejemplo, una variable de tipo longlong (Referencia de C#) (entero de 8 bytes) puede almacenar cualquier valor que pueda almacenar a su vez un elemento intint (Referencia de C#) (4 bytes en un equipo de 32 bits). En el ejemplo siguiente, el compilador convierte implícitamente el valor de la derecha en un tipo long antes de asignarlo a bigNum.

Tabla de conversiones numéricas implícitas

La tabla siguiente muestra las conversiones numéricas implícitas predefinidas. Las conversiones implícitas se pueden dar en muchas ocasiones, incluidas la invocación a métodos y las instrucciones de asignación.

De A

sbyte

short, int, long, float, double o decimal

byte

short, ushort, int, uint, long, ulong, float, double o decimal

short

int, long, float, double o decimal

ushort

int, uint, long, ulong, float, double o decimal

int

long, float, double o decimal

uint

long, ulong, float, double o decimal

long

float, double o decimal

char

ushort, int, uint, long, ulong, float, double o decimal

float

double

ulong

float, double o decimal

Comentarios

• Las conversiones de int, uint o long a float y de long a double pueden causar una pérdida de precisión, pero no una pérdida de magnitud.

• No existen conversiones

...

Descargar como (para miembros actualizados)  txt (7.3 Kb)  
Leer 4 páginas más »
Disponible sólo en Clubensayos.com