C# | Tipo de fundición – Part 1

Requisito previo: Tipos de datos de C#

La conversión de tipo ocurre cuando asignamos el valor de un tipo de datos a otro. Si los tipos de datos son compatibles, C# realiza la conversión automática de tipos . Si no son comparables, deben convertirse explícitamente, lo que se conoce como conversión de tipo explícito . Por ejemplo, asignar un valor int a una variable larga.

Casting implícito de tipos / Conversión automática de tipos

Sucede cuando:

  • Los dos tipos de datos son compatibles.
  • Cuando asignamos el valor de un tipo de datos más pequeño a un tipo de datos más grande.

Por ejemplo, en C#, los tipos de datos numéricos son compatibles entre sí, pero no se admite la conversión automática de tipo numérico a char o booleano. Además, char y boolean no son compatibles entre sí. Antes de convertir, el compilador primero verifica la compatibilidad de acuerdo con la siguiente figura y luego decide si está bien o si hay algún error.

La siguiente tabla muestra los tipos implícitos de conversión que admite C#:

Convertir desde tipo de datos Convertir a tipo de datos
byte corto, int, largo, flotante, doble
corto int, largo, flotante, doble
En t largo, flotante, doble
largo flotador, doble
flotar doble

Ejemplo :

// C# program to demonstrate the
// Implicit Type Conversion
using System;
namespace Casting{
  
class GFG {
  
        // Main Method
        public static void Main(String []args)
        {
            int i = 57; 
              
            // automatic type conversion
            long l = i; 
               
            // automatic type conversion
            float f = l;
              
            // Display Result
            Console.WriteLine("Int value "  +i);
            Console.WriteLine("Long value "  +l);
            Console.WriteLine("Float value "  +f);
        }
}
}
Producción:

Int value 57
Long value 57
Float value 57

Casting de tipo explícito

Puede haber un error de compilación cuando los tipos no son compatibles entre sí. Por ejemplo, asignando valor doble al tipo de datos int:

// C# program to illustrate incompatible data 
// type for explicit type conversion
using System;
namespace Casting{
  
class GFG {
  
        // Main Method
        public static void Main(String []args)
        {
            double d = 765.12;
  
            // Incompatible Data Type
            int i = d;
              
            // Display Result    
            Console.WriteLine("Value of i is ", +i);
        }
}
}

Error :

prog.cs(14,21): error CS0266: Cannot implicitly convert type `double' to `int'.
An explicit conversion exists (are you missing a cast?)

Entonces, si queremos asignar un valor de tipo de datos más grande a un tipo de datos más pequeño, realizamos una conversión de tipos explícita.

  • Esto es útil para tipos de datos incompatibles donde no se puede realizar la conversión automática.
  • Aquí, target-type especifica el tipo deseado para convertir el valor especificado.
  • A veces, puede resultar en la conversión con pérdida.

Ejemplo :

// C# program to demonstrate the
// Explicit Type Conversion
using System;
namespace Casting{
  
class GFG {
  
        // Main Method
        public static void Main(String []args)
        {
            double d = 765.12;
  
            // Explicit Type Casting
            int i = (int)d;
  
            // Display Result
            Console.WriteLine("Value of i is " +i);
        }
}
}
Producción:

Value of i is 765

Explicación:
aquí, debido a la conversión con pérdida, el valor de i se convierte en 765 y hay una pérdida de valor de 0,12.

C# proporciona métodos integrados para conversiones de tipos de la siguiente manera:

Método Descripción
abooleano Convierte un tipo a valor booleano
ToChar Convierte un tipo en un valor de carácter.
a byte Convertirá un valor a Byte Value
ADecimal Convertirá un valor en valor de punto decimal
Para duplicar Convierte un tipo a tipo de datos doble
ToInt16 Convierte un tipo a entero de 16 bits
ToInt32 Convierte un tipo a entero de 32 bits
ToInt64 Convierte un tipo a entero de 64 bits
Enstringr Convertirá un tipo dado en una string.
ToUInt16 Convierte un tipo en un entero de 16 bits sin firmar
ToUInt32 Convierte un tipo en un entero de 32 bits sin signo
ToUInt64 Convierte un tipo en un entero de 64 bits sin firmar

Ejemplo :

// C# program to demonstrate the
// Built- In Type Conversion Methods
using System;
namespace Casting{
  
class GFG {
  
        // Main Method
        public static void Main(String []args)
        {
            int i = 12;
            double d = 765.12;
            float f = 56.123F;
              
            // Using Built- In Type Conversion
            // Methods & Displaying Result
            Console.WriteLine(Convert.ToString(f));
            Console.WriteLine(Convert.ToInt32(d));
            Console.WriteLine(Convert.ToUInt32(f));
            Console.WriteLine(Convert.ToDouble(i));
            Console.WriteLine("GeeksforGeeks");
        }
}
}
Producción:

56.123
765
56
12
GeeksforGeeks

Publicación traducida automáticamente

Artículo escrito por keshav_786 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *