Object Klasse
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern
Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Object-Klasse

 

Unterstützt sämtliche Klassen in der Hierarchie von .NET Framework-Klassen und stellt abgeleiteten Klassen Low-Level-Dienste zur Verfügung. Dies ist die allen Klassen von .NET Framework übergeordnete Basisklasse und stellt die Wurzel der Typhierarchie dar.

Um den .NET Framework-Quellcode für diesen Typ zu durchsuchen, finden Sie unter der Reference Source.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  Alle Klassen, Strukturen, Enumerationen und Delegaten.

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

NameBeschreibung
System_CAPS_pubmethodObject()

Initialisiert eine neue Instanz der Object-Klasse.

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.

System_CAPS_pubmethodSystem_CAPS_staticEquals(Object, Object)

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

System_CAPS_protmethodFinalize()

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

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

System_CAPS_pubmethodSystem_CAPS_staticReferenceEquals(Object, Object)

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

System_CAPS_pubmethodToString()

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

System_CAPS_noteHinweis

Der .NET Framework-Quellcode für dieses Typs finden Sie unter der Reference Source.Sie können den Quellcode online Durchsuchen, den Verweis für die Offlineanzeige herunterladen und Schritt für Schritt durch die Quellen (einschließlich der Patches und Updates) während des Debuggens; see instructions.

Sprachen erfordern in der Regel keine Klasse zur Deklaration der Vererbung von Object da die Vererbung implizit ist.

Da alle Klassen in .NET Framework abgeleitet sind Object, jede Methode gemäß der Object Klasse ist verfügbar in allen Objekten im System.Abgeleitete Klassen, und überschreiben Sie einige dieser Methoden, einschließlich:

  • Equals – Unterstützt Vergleiche zwischen Objekten.

  • Finalize -Führt Bereinigungsvorgänge, bevor ein Objekt automatisch freigegeben wird.

  • GetHashCode – Erzeugt eine Zahl, die dem Wert des Objekts entspricht, zur Unterstützung der Verwendung einer Hashtabelle.

  • ToString – Erzeugt eine lesbare Zeichenfolge, die eine Instanz der Klasse beschreibt.

Wenn Sie eine Klasse, z. B. eine Auflistung entwerfen, die jeden Objekttyp behandeln muss, können Sie Klassenmember, die Instanzen der akzeptieren erstellen die Object Klasse.Allerdings wird der Prozess von Boxing und unboxing eines Typs Leistungseinbußen auf.Wenn Sie wissen, dass die neue Klasse häufig bestimmte Werttypen behandeln wird können eine der beiden Taktiken Sie die Kosten von Boxing zu minimieren.

  • Erstellen Sie eine allgemeine Methode, akzeptiert ein Object Typ und einen Satz von Methodenüberladungen, die jeden Wert akzeptieren, den die Klasse häufig behandeln.Ist eine typspezifische Methode, die den aufrufenden Parametertyp akzeptiert vorhanden, entfällt das Boxing, und die Methode aufgerufen.Ist keine Methodenargument, das dem aufrufenden Parametertyp übereinstimmt, wird der Parameter geschachtelt, und die allgemeine Methode wird aufgerufen.

  • Entwerfen Sie den Typ und seine Member zum Verwenden von Generika.Die common Language Runtime erstellt einen geschlossenen generischen Typ, wenn Sie eine Instanz der Klasse zu erstellen, und geben Sie ein generisches Typargument.Die generische Methode ist typabhängig und kann aufgerufen werden, ohne den aufrufenden Parameter boxing.

Zwar es manchmal erforderlich sein ist, allgemeine Klassen zu entwickeln, die akzeptieren und zurückgeben Object Typen können Sie die Leistung verbessern, durch die Bereitstellung auch einer typspezifische-Klasse, um ein häufig verwendeter Typ zu behandeln.Bereitstellen einer Klasse, die zum Festlegen und Abrufen von booleschen Werten entfällt z. B. die Kosten für Boxing und unboxing boolesche Werte.

Das folgende Beispiel definiert einen Punkttyp abgeleitet aus der Object -Klasse und überschreibt viele der virtuellen Methoden der die Object Klasse.Das Beispiel zeigt außerdem, wie viele der statischen Methoden und Instanzenmethoden der die Object Klasse.

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.
        Point 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 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();
    }
}

public sealed class App {
    static void Main() 
    {
        // Construct a Point object.
        Point p1 = new 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 example produces the following output:
//
// False
// True
// True
// p1's value is: (1, 2)
//

Universal Windows Platform
Verfügbar seit 4.5
.NET Framework
Verfügbar seit 1.1
Portable Class Library
Unterstützt in: portable .NET platforms
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1

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

Zurück zum Anfang
Anzeigen:
© 2016 Microsoft