Leggere in inglese

Condividi tramite


Object Classe

Definizione

Supporta tutte classi della gerarchia di classi .NET e fornisce servizi di basso livello alle classi derivate. Questa è la principale classe base di tutte le classi .NET e rappresenta la radice della gerarchia dei tipi.

C#
public class Object
C#
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDual)]
[System.Serializable]
public class Object
C#
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDual)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Object
Attributi

Esempio

L'esempio seguente definisce un tipo Point derivato dalla classe ed esegue l'override Object di molti dei metodi virtuali della Object classe. L'esempio illustra inoltre come chiamare molti dei metodi statici e dell'istanza della Object classe.

C#
using System;

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

    public Point(int x, int y)
    {
        this.x = x;
        this.y = y;
    }

    public override bool Equals(object obj)
    {
        // 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.
        var other = (Point) obj;
        return (this.x == other.x) && (this.y == other.y);
    }

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

    // Return the point's value as a string.
    public override String ToString()
    {
        return $"({x}, {y})";
    }

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

public sealed class App
{
    static void Main()
    {
        // Construct a Point object.
        var p1 = new Point(1,2);

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

        // Make another variable that references the first Point object.
        var 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: {p1.ToString()}");
    }
}

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

Commenti

Per altre informazioni su questa API, vedere Osservazioni api supplementari per Object.

Costruttori

Object()

Inizializza una nuova istanza della classe Object.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

Equals(Object, Object)

Determina se le istanze dell'oggetto specificate sono considerate uguali.

Finalize()

Consente a un oggetto di effettuare un tentativo di liberare risorse ed eseguire altre operazioni di pulizia prima che venga recuperato da Garbage Collection.

GetHashCode()

Funge da funzione hash predefinita.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

ReferenceEquals(Object, Object)

Determina se le istanze di Object specificate rappresentano la stessa istanza.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Thread safety

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread safe. I membri dell'istanza non sono garantiti come thread-safe.