C# | Clase de objeto – Part 1

La clase Object es la clase base para todas las clases en .Net Framework . Está presente en el espacio de nombres del sistema . En C#, la biblioteca de clases base de .NET (BCL) tiene un alias específico del idioma que es la clase de objeto con el nombre completo como System.Object . Cada clase en C# se deriva directa o indirectamente de la clase Object. Si una clase no se extiende a ninguna otra clase, entonces es la clase secundaria directa de la clase Object y si se extiende a otra clase, se deriva indirectamente. Por lo tanto, los métodos de la clase Object están disponibles para todas las clases de C#. Por lo tanto, la clase de objeto actúa como raíz de la jerarquía de herencia en cualquier programa de C#. El objetivo principal de la clase Object es proporcionar servicios de bajo nivel a las clases derivadas. 

Hay dos tipos en C#, es decir, tipos de referencia y tipos de valor. Al usar la clase System.ValueType, los tipos de valor heredan implícitamente la clase de objeto. La clase System.ValueType anula los métodos virtuales de Object Class con implementaciones más apropiadas para los tipos de valor. En otros lenguajes de programación, los tipos integrados como int, double, float, etc. no tienen propiedades orientadas a objetos. Para simular el comportamiento orientado a objetos de los tipos integrados, deben incluirse explícitamente en los objetos. Pero en C#, no necesitamos dicho ajuste debido a la presencia de tipos de valor que se heredan de System.ValueType que se hereda además de System.Object. Entonces, en C#, los tipos de valor también funcionan de manera similar a los tipos de referencia. Los tipos de referencia heredan directa o indirectamente la clase de objeto mediante el uso de otros tipos de referencia.

  

Explicación de la figura anterior: aquí puede ver la clase de objeto en la parte superior de la jerarquía de tipos. Clase 1 y Clase 2 son los tipos de referencia. La clase 1 hereda directamente la clase de objeto, mientras que la clase 2 hereda indirectamente mediante el uso de la clase 1. Struct1 es un tipo de valor que hereda implícitamente la clase de objeto a través del tipo System.ValueType

Ejemplo: 

CSharp

// C# Program to demonstrate
// the Object class
using System;
using System.Text;
 
class Geeks {
 
    // Main Method
    static void Main(string[] args)
    {
 
        // taking object type
        Object obj1 = new Object();
 
        // taking integer
        int i = 10;
 
        // taking Type type and assigning
        // the value as type of above
        // defined types using GetType
        // method
        Type t1 = obj1.GetType();
        Type t2 = i.GetType();
 
        // Displaying result
 
        Console.WriteLine("For Object obj1 = new Object();");
 
        // BaseType is used to display
        // the base class of current type
        // it will return nothing as Object
        // class is on top of hierarchy
        Console.WriteLine(t1.BaseType);
 
        // It will return the name class
        Console.WriteLine(t1.Name);
 
        // It will return the
        // fully qualified name
        Console.WriteLine(t1.FullName);
 
        // It will return the Namespace
        // By default Namespace is System
        Console.WriteLine(t1.Namespace);
 
        Console.WriteLine();
 
        Console.WriteLine("For String str");
 
        // BaseType is used to display
        // the base class of current type
        // it will return System.Object
        // as Object class is on top
        // of hierarchy
        Console.WriteLine(t2.BaseType);
 
        // It will return the name class
        Console.WriteLine(t2.Name);
 
        // It will return the
        // fully qualified name
        Console.WriteLine(t2.FullName);
 
        // It will return the Namespace
        // By default Namespace is System
        Console.WriteLine(t2.Namespace);
    }
}

Producción:

For Object obj1 = new Object();

Object
System.Object
System

For String str
System.ValueType
Int32
System.Int32
System

Constructor

.objeto-tabla { borde-colapso: colapsar; ancho: 100%; } .object-table td { borde: 1px sólido #5fb962; alineación de texto: izquierda! importante; relleno: 8px; } .object-table th { borde: 1px sólido #5fb962; relleno: 8px; } .object-table tr>th{ color de fondo: #c6ebd9; alineación vertical: medio; } .object-table tr:nth-child(odd) { background-color: #ffffff; } 

Constructor Descripción
Objeto() Inicializa una nueva instancia de la clase Object. Los constructores de clases derivadas llaman a este constructor, pero también se puede usar para crear directamente una instancia de la clase Object.

Métodos

Hay un total de 8 métodos presentes en la clase de objeto C# de la siguiente manera:

Métodos Descripción
Es igual a (Objeto) Determina si el objeto especificado es igual al objeto actual.
Es igual a (Objeto, Objeto) Determina si las instancias de objeto especificadas se consideran iguales.
Finalizar() Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de que la recolección de elementos no utilizados lo reclame.
Obtener código hash() Sirve como la función hash predeterminada.
ObtenerTipo() Obtiene el Tipo de la instancia actual.
MemberwiseClone() Crea una copia superficial del objeto actual.
ReferenciaEquals(Objeto, Objeto) Determina si las instancias de Object especificadas son la misma instancia.
Enstringr() Devuelve una string que representa el objeto actual.

Puntos importantes:

  • Las clases de C# no requieren declarar la herencia de la clase Object, ya que la herencia es implícita.
  • Todos los métodos definidos en la clase Object están disponibles en todos los objetos del sistema, ya que todas las clases de .NET Framework se derivan de la clase Object.
  • Las clases derivadas pueden anular y anulan los métodos Equals, Finalize, GetHashCode y ToString de la clase Object.
  • El proceso de empaquetar y desempaquetar un tipo genera internamente un costo de rendimiento. El uso de la clase específica de tipo para manejar los tipos de uso frecuente puede mejorar el costo de rendimiento.

Publicación traducida automáticamente

Artículo escrito por Anshul_Aggarwal 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 *