miércoles, 10 de agosto de 2016

Conversiones de tipos

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'"
 
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.  La conversión se requiere cuando es posible que se pierda información en el proceso o cuando esta puede no realizarse correctamente por otras razones. Entre los ejemplos habituales se incluye la conversión en un tipo con menor precisión o un intervalo menor, y la conversión de una instancia de clase base en una clase derivada.  
·  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.  Para obtener más información, vea Cómo: Convertir una matriz de bytes en un valor int (Guía de programación de C#), Cómo: Convertir una cadena en un número (Guía de programación de C#) y Cómo: Convertir cadenas hexadecimales en tipos numéricos (Guía de programación de C#). 
 

No hay comentarios:

Publicar un comentario