Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase Object

 

Admite todas las clases de la jerarquía de clases de .NET Framework y proporciona servicios de bajo nivel a las clases derivadas. Se trata de la clase base fundamental de todas las clases de .NET Framework; es la raíz de la jerarquía de tipos.

Para examinar el código fuente de .NET Framework para este tipo, consulte el Reference Source.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

System::Object
   Todas las clases, estructuras, enumeraciones y delegados.

[SerializableAttribute]
[ClassInterfaceAttribute(ClassInterfaceType::AutoDual)]
[ComVisibleAttribute(true)]
public ref class Object 

NombreDescripción
System_CAPS_pubmethodObject()

Inicializa una nueva instancia de la clase Object.

NombreDescripción
System_CAPS_pubmethodEquals(Object^)

Determina si el objeto especificado es igual al objeto actual.

System_CAPS_pubmethodSystem_CAPS_staticEquals(Object^, Object^)

Determina si las instancias del objeto especificado se consideran iguales.

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.

System_CAPS_pubmethodSystem_CAPS_staticReferenceEquals(Object^, Object^)

Determina si las instancias de Object especificadas son la misma instancia.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual.

System_CAPS_noteNota

Para ver el código fuente de .NET Framework para este tipo, consulte el Reference Source. Puede examinar el código fuente en línea, descargar la referencia para visualizarlo sin conexión y paso a paso el código fuente (incluidas revisiones y actualizaciones) durante la depuración; see instructions.

Idiomas no suelen requieran una clase para declarar la herencia de Object porque la herencia está implícita.

Dado que se derivan todas las clases de .NET Framework Object, todos los métodos definidos en la Object clase está disponible en todos los objetos en el sistema. Las clases derivadas pueden e invalidar algunos de estos métodos, incluyendo:

  • Equals-Admite comparaciones entre objetos.

  • Finalize-Realiza operaciones de limpieza antes de que un objeto sea reclamado automáticamente.

  • GetHashCode-Genera un número correspondiente al valor del objeto que admite el uso de una tabla hash.

  • ToString-Crea una cadena de texto legible que describe una instancia de la clase.

Si está diseñando una clase, como una colección, que debe administrar cualquier tipo de objeto, puede crear miembros de clase que acepten instancias de la Object clase. Sin embargo, el proceso de conversión boxing y unboxing a un tipo implica un costo de rendimiento. Si conoce que la nueva clase controlará con frecuencia ciertos tipos de valor puede utilizar uno de dos tácticas para minimizar el costo de la conversión boxing.

  • Crear un método general que acepta un Object tipo y un conjunto de sobrecargas de método específico del tipo que acepten cada tipo de valor que se espera que la clase controle con frecuencia. Si no existe un método específico del tipo que acepta el tipo de parámetro que realiza la llamada, se produce ninguna conversión boxing y se invoca el método específico del tipo. Si no hay ningún argumento de método que coincida con el tipo de parámetro que realiza la llamada, el parámetro es una conversión boxing y se invoca el método general.

  • Diseñar su tipo y sus miembros para que utilicen genéricos. Common language runtime crea un tipo genérico cerrado cuando se crea una instancia de la clase y especificar un argumento de tipo genérico. El método genérico es específico del tipo y se puede invocar sin conversión boxing al parámetro de llamada.

Aunque a veces es necesario desarrollar clases de propósito general que aceptan y devuelven Object tipos, puede mejorar el rendimiento proporcionando también una clase específica del tipo para controlar un tipo de uso frecuente. Por ejemplo, si se proporciona una clase que es específica para establecer y obtener valores booleanos, elimina el costo de aplicar conversiones boxing y unboxing valores booleanos.

En el ejemplo siguiente se define un tipo de punto derivado de la Object clase y se reemplazan muchos de los métodos virtuales de la Object clase. Además, en el ejemplo se muestra cómo llamar a muchos de los métodos estático y métodos de la instancia la Object clase.

using namespace System;

// The Point class is derived from System.Object.
ref class Point
{
public:
    int x;
public:
    int y;

public:
    Point(int x, int y)
    {
        this->x = x;
        this->y = y;
    }

public:
    virtual bool Equals(Object^ obj) override
    {
        // If this and obj do not refer to the same type,
        // then they are not equal.
        if (obj->GetType() != this->GetType())
        {
            return false;
        }

        // Return true if  x and y fields match.
        Point^ other = (Point^) obj;
        return (this->x == other->x) && (this->y == other->y);
    }

    // Return the XOR of the x and y fields.
public:
    virtual int GetHashCode() override 
    {
        return x ^ y;
    }

    // Return the point's value as a string.
public:
    virtual String^ ToString() override 
    {
        return String::Format("({0}, {1})", x, y);
    }

    // Return a copy of this point object by making a simple
    // field copy.
public:
    Point^ Copy()
    {
        return (Point^) this->MemberwiseClone();
    }
};

int main()
{
    // Construct a Point object.
    Point^ p1 = gcnew Point(1, 2);

    // Make another Point object that is a copy of the first.
    Point^ p2 = p1->Copy();

    // Make another variable that references the first
    // Point object.
    Point^ p3 = p1;

    // The line below displays false because p1 and 
    // p2 refer to two different objects.
    Console::WriteLine(
        Object::ReferenceEquals(p1, p2));

    // The line below displays true because p1 and p2 refer
    // to two different objects that have the same value.
    Console::WriteLine(Object::Equals(p1, p2));

    // The line below displays true because p1 and 
    // p3 refer to one object.
    Console::WriteLine(Object::ReferenceEquals(p1, p3));

    // The line below displays: p1's value is: (1, 2)
    Console::WriteLine("p1's value is: {0}", p1->ToString());
}

// This code produces the following output.
//
// False
// True
// True
// p1's value is: (1, 2)

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1

Estático público (Shared en Visual Basic) miembros de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancia sea seguro para subprocesos.

Volver al principio
Mostrar: