Windows-Apps
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
Informationen
Das angeforderte Thema wird unten angezeigt. Es ist jedoch nicht in dieser Bibliothek vorhanden.

Object-Klasse

 

Veröffentlicht: Juli 2016

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 den Stamm der Typhierarchie dar.

Informationen zum Durchsuchen des .NET Framework-Quellcodes für diesen Typ 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

Die .NET Framework-Quellcodes für diesen Typ finden Sie unter der Reference Source. Sie können den Quellcode online Durchsuchen, Referenz für die Offlineanzeige herunterladen und schrittweise durchlaufen (inklusive 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 definiert, die der Object Klasse steht in allen Objekten im System. Abgeleitete Klassen, und überschreiben Sie einigen dieser Methoden, einschließlich:

  • Equals– Unterstützt Vergleiche zwischen Objekten.

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

  • GetHashCode-Generiert eine Zahl, die entsprechend dem Wert des Objekts zur Unterstützung einer Hashtabelle.

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

Wenn Sie eine Klasse, z. B. eine Auflistung entwerfen, die jede Art von Objekt behandelt werden müssen, können Sie Klassenmember, die Instanzen von akzeptieren erstellen die Object Klasse. Der Prozess von Boxing und unboxing eines Typs birgt jedoch Kosten der Leistung. Wenn Sie wissen, dass die neue Klasse häufig bestimmte Werttypen behandelt, können Sie eine der beiden Taktiken Boxing begegnet verwenden.

  • Erstellen Sie eine allgemeine Methode, die akzeptiert ein Object Typ und einen Satz von typspezifische methodenüberladungen, die jeden Typ Sie erwarten, die Klasse akzeptieren dass, um häufig zu behandeln. Wenn eine typspezifischen Methode vorhanden, das den Parametertyp des aufrufenden akzeptiert ist, keine Boxing-Konvertierung tritt ein, und die typspezifischen Methode aufgerufen wird. Ist keine Methodenargument, das dem aufrufenden Parametertyp übereinstimmt, wird der Parameter geschachtelt und allgemeine aufgerufen wird.

  • Entwerfen Sie Ihren Typ und ihre Member zum Verwenden von Generika. Die common Language Runtime erstellt geschlossenen generischen Typs an, wenn Sie eine Instanz der Klasse erstellen, und geben Sie ein generisches Typargument. Die generische Methode ist typspezifische und aufgerufen werden kann, ohne den aufrufenden Parameter boxing.

Obwohl es in einigen Fällen notwendig ist, allgemeine Klassen zu entwickeln, akzeptieren und zurückgeben Object Typen, können Sie die Leistung verbessern, durch die Bereitstellung auch einer typspezifische-Klasse, um einen häufig verwendeten Typ 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 wurde. die Object -Klasse und überschreibt viele der virtuellen Methoden für die Object Klasse. Darüber hinaus wird im Beispiel gezeigt, wie viele der statischen aufrufen und Instanzmethoden von der 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)
//

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
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 unbedingt threadsicher sein.

Zurück zum Anfang
Anzeigen:
© 2017 Microsoft