La unificación del sistema de tipos en C# significa que todos los tipos de datos en C# se heredan de la clase Object , ya sea directa o indirectamente. O puede decir que todos los tipos se consideran objetos. En C#, los tipos primitivos se conocen como tipos de valor, que son básicamente estructuras. Internamente, las estructuras y las clases heredan la clase de objeto. Es por eso que todos los tipos son considerados indirectamente como Objetos, y esta terminología se conoce como Unificación del Sistema de Tipos .
Ejemplo: todos los tipos predefinidos (como short, int long, etc.) son estructuras. A continuación se muestran los tipos predefinidos junto con sus estructuras equivalentes:
Tipo predefinido | Estructura equivalente |
---|---|
corto | Sistema.Int16 |
En t | Sistema.Int32 |
largo | Sistema.Int64 |
corto | Sistema.UInt16 |
uint | Sistema.UInt32 |
largo | Sistema.Int64 |
byte | Sistema.Byte |
sbyte | Sistema.SByte |
bool | Sistema.Booleano |
carbonizarse | Sistema.Char |
Flotar | Sistema.Único |
Doble | Sistema.Doble |
Decimal | Sistema.Decimal |
Ejemplo: en el siguiente programa, los tipos de datos de valor como int, char, bool se usan como objetos debido a la unificación del sistema de tipos con el método ToString() que devuelve una string que representa ese objeto en particular.
// C# implementation of Type // System Unification using System; class GFG { // Main Method public static void Main(string[] args) { // Value data types int i = 1; char c = 'A'; bool b = true; Console.WriteLine(i.ToString()); Console.WriteLine(c.ToString()); Console.WriteLine(b.ToString()); } }
1 A True
Boxeo y Unboxing
La unificación del sistema de tipos permite encajonar y desencajar, ya que cualquier tipo de datos de valor se puede tratar como un objeto. Entonces, cuando un tipo de datos de valor como int, char, bool, etc. se convierte en un tipo de objeto, se conoce como boxeo. Por el contrario, cuando el tipo de objeto se vuelve a convertir en el tipo de datos, se conoce como unboxing.
Boxeo: un tipo de datos de valor como int, char, bool, etc. se convierte en un tipo de objeto implícitamente en el boxeo. Primero, se asigna un tipo de objeto y luego el valor en el tipo de datos de valor se copia en el tipo de objeto.
Ejemplo:
// C# implementation of Boxing using System; class GFG { // Main Method static public void Main() { // int value data type int val = 8; // boxing object obj = val; System.Console.WriteLine("val = {0}", val); System.Console.WriteLine("obj = {0}", obj); } }
val = 8 obj = 8
Unboxing: un tipo de objeto se convierte en un tipo de datos de valor como int, char, bool, etc. explícitamente en unboxing. Primero, se verifica si el tipo de objeto es el valor encuadrado del tipo de datos de valor. En caso afirmativo, se copia el valor del tipo de objeto.
Ejemplo:
// C# implementation of Unboxing using System; class GFG { // Main Method static public void Main() { // int value data type int val1 = 8; // boxing object obj = val1; // unboxing int val2 = (int)obj; Console.WriteLine("val1 = " + val1); Console.WriteLine("obj = " + obj); Console.WriteLine("val2 = " + val2); } }
val1 = 8 obj = 8 val2 = 8
Beneficios de la unificación del sistema de tipos: la unificación del sistema de tipos es muy útil ya que proporciona el doble beneficio de que un tipo de datos se comporte como un tipo de datos de valor o un tipo de objeto. Se puede usar un tipo de datos de valor cuando sea necesario y se puede convertir en un tipo de objeto usando el encuadre si es necesario debido a la característica inherente de la unificación del sistema de tipos.
Publicación traducida automáticamente
Artículo escrito por harkiran78 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA