Escriba la unificación del sistema en C# .NET

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());
    }
}
Producción:

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);
    }
}
Producción:

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);
    }
}
Producción:

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

Deja una respuesta

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