Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando la Conversión de Tipos en C#: Implícita, Explícita, Parse y Métodos Convert

Dominando la Conversión de Tipos en C#

Aprende a convertir entre tipos de datos en C#: desde conversiones implícitas y explícitas hasta las potentes APIs Parse y Convert, con ejemplos claros y mejores prácticas.

La conversión de tipos —cambiar un valor de un tipo de dato a otro— es una habilidad fundamental en C#. Entender cuándo y cómo usar cada método de conversión asegura que tu código sea seguro y eficiente.

En C#, las conversiones se dividen en dos categorías principales:

  1. Conversiones de Tipo Implícitas
  2. Conversiones de Tipo Explícitas (casting)

1. Conversión de Tipo Implícita en C#

Las conversiones implícitas las realiza automáticamente el compilador cuando no puede ocurrir pérdida de datos. Son seguras y no requieren sintaxis adicional.

Escenarios típicos implican convertir un tipo numérico menor a uno mayor —p. ej., int a double— para que el valor pueda representarse sin truncamiento.

Ejemplo: Conversión de Tipo Implícita

using System; namespace MiAplicacion { class Programa { static void Main(string[] args) { int numInt = 500; // Conversión implícita double numDouble = numInt; Console.WriteLine($"Valor numInt: {numInt}"); Console.WriteLine($"Tipo numInt: {numInt.GetType()}"); Console.WriteLine($"Valor numDouble: {numDouble}"); Console.WriteLine($"Tipo numDouble: {numDouble.GetType()}"); Console.ReadLine(); } } }

Salida

Valor numInt: 500 Tipo numInt: System.Int32 Valor numDouble: 500 Tipo numDouble: System.Double

Como double tiene mayor capacidad, el compilador promueve el valor int de forma segura sin riesgo de desbordamiento.

Nota: Las conversiones implícitas nunca pierden datos, pero aumentan el tamaño del tipo resultante.


2. Conversión de Tipo Explícita (Casting) en C#

Las conversiones explícitas, o casts, se usan al convertir de un tipo mayor a uno menor o entre tipos no relacionados. El desarrollador debe señalar la intención, y el compilador puede advertir si la conversión podría descartar datos.

Ejemplo: Conversión de Tipo Explícita

using System; namespace MiAplicacion { class Programa { static void Main(string[] args) { double numDouble = 1.23; int numInt = (int)numDouble; // Cast explícito Console.WriteLine($"Valor double original: {numDouble}"); Console.WriteLine($"Valor int convertido: {numInt}"); Console.ReadLine(); } } }

Salida

Valor double original: 1.23 Valor int convertido: 1

El cast trunca la parte fraccionaria, por lo que 1.23 se convierte en 1. Si la precisión importa, considera usar métodos de redondeo antes de castear.

Nota: El casting también se denomina conversión de tipo.


3. Convirtiendo Cadenas con Parse()

Al convertir de string a un tipo numérico, int.Parse, double.Parse, etc., proporcionan un enfoque directo y seguro en tipos.

Ejemplo: Usando int.Parse

using System; namespace Conversion { class Programa { static void Main(string[] args) { string n = "100"; int a = int.Parse(n); Console.WriteLine($"Valor string original: {n}"); Console.WriteLine($"Valor int convertido: {a}"); Console.ReadLine(); } } }

Salida

Valor string original: 100 Valor int convertido: 100

Intentar parsear una cadena no numérica, como "prueba", lanzará una FormatException. En código de producción, envuelve la llamada en try-catch o usa int.TryParse para manejar errores con elegancia.


4. La Clase Convert

La clase estática Convert ofrece un amplio conjunto de métodos para convertir entre muchos tipos de datos, a menudo realizando comprobaciones necesarias internamente.

MétodoDescripción
ToBoolean()Convierte un valor a bool
ToChar()Convierte un valor a char
ToDouble()Convierte un valor a double
ToInt16()Convierte un valor a int de 16 bits
ToString()Convierte un valor a string

A continuación, ejemplos ilustrativos que cubren conversiones comunes.

Ejemplo: int → string y double

using System; namespace Conversion { class Programa { static void Main(string[] args) { int num = 100; Console.WriteLine($"Valor int: {num}"); string str = Convert.ToString(num); Console.WriteLine($"Valor string: {str}"); double dbl = Convert.ToDouble(num); Console.WriteLine($"Valor double: {dbl}"); Console.ReadLine(); } } }

Salida

Valor int: 100 Valor string: 100 Valor double: 100

Ejemplo: string ↔ double

using System; namespace Conversion { class Programa { static void Main(string[] args) { string str = "99.99"; Console.WriteLine($"Valor string original: {str}"); double dbl = Convert.ToDouble(str); Console.WriteLine($"Valor double convertido: {dbl}"); double num = 88.9; Console.WriteLine($"Valor double original: {num}"); string newStr = Convert.ToString(num); Console.WriteLine($"Valor string convertido: {newStr}"); Console.ReadLine(); } } }

Salida

Valor string original: 99.99 Valor double convertido: 99.99 Valor double original: 88.9 Valor string convertido: 88.9

Ejemplo: int → bool

using System; namespace Conversion { class Programa { static void Main(string[] args) { int num1 = 0; int num2 = 1; bool bool1 = Convert.ToBoolean(num1); bool bool2 = Convert.ToBoolean(num2); Console.WriteLine($"Valor booleano de 0 es: {bool1}"); Console.WriteLine($"Valor booleano de 1 es: {bool2}"); Console.ReadLine(); } } }

Salida

Valor booleano de 0 es: False Valor booleano de 1 es: True

Nota: En C#, 0 se interpreta como false; cualquier entero no cero evalúa a true.


Dominando estas técnicas de conversión, puedes escribir código que sea tanto seguro en tipos como expresivo, reduciendo errores en tiempo de ejecución y mejorando la legibilidad.

Lenguaje C

  1. ASTM A1018 Grado CS Tipo B: Especificaciones de Acero Bajo en Carbono
  2. ASTM A424 Grado Tipo II: Especificaciones y Rendimiento del Acero
  3. ASTM A424 Grado Tipo I: Propiedades Clave y Rendimiento
  4. ASTM A792 Grado CS Tipo A – Propiedades y Especificaciones Detalladas
  5. Tubería ASTM A53 Grado A Tipo E – Especificaciones y Propiedades Clave
  6. Tubería ASTM A53 Grado A Tipo S – Especificaciones y Propiedades Clave
  7. Acero ASTM A792 Grado CS Tipo C – Propiedades y Especificaciones para Chapas Revestidas
  8. Dominando conversión y casting de tipos en Python: Guía completa
  9. Dominando Números, Conversión de Tipos y Matemáticas en Python
  10. Dominando el Casting de Tipos en Java: Desde Ensanchamiento hasta Estrechamiento y Más Allá
  11. Dominando Genéricos en Java: Simplifica Ordenación y Mejora Seguridad de Tipos