Auf Englisch lesen

Freigeben über


Object Klasse

Definition

Unterstützt alle Klassen in der .NET-Klassenhierarchie und stellt abgeleiteten Klassen Low-Level-Dienste zur Verfügung. Dies ist die ultimative Basisklasse aller .NET-Klassen und stellt den Stamm der Typhierarchie dar.

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
Attribute

Beispiele

Im folgenden Beispiel wird ein von der Object -Klasse abgeleiteter Point-Typ definiert und viele der virtuellen Methoden der Object -Klasse außer Kraft gesetzt. Darüber hinaus zeigt das Beispiel, wie viele der statischen und instance Methoden der Object -Klasse aufgerufen werden.

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)
//

Hinweise

Weitere Informationen zu dieser API finden Sie unter Zusätzliche API-Hinweise für Object.

Konstruktoren

Object()

Initialisiert eine neue Instanz der Object-Klasse.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

Equals(Object, Object)

Stellt fest, ob die angegebenen Objektinstanzen als gleich betrachtet werden.

Finalize()

Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird.

GetHashCode()

Fungiert als Standardhashfunktion.

GetType()

Ruft den Type der aktuellen Instanz ab.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

ReferenceEquals(Object, Object)

Stellt fest, ob die angegebenen Object-Instanzen dieselbe Instanz sind.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

Gilt für:

Produkt Versionen
.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

Threadsicherheit

Öffentliche statische (Shared in Visual Basic) Member dieses Typs sind threadsicher. Instanzmember sind nicht garantiert, dass sie threadsicher sind.