System.Object-Klasse

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Die Object Klasse ist die ultimative Basisklasse aller .NET-Klassen. Sie ist der Stamm der Typhierarchie.

Da alle Klassen in .NET abgeleitet Objectwerden, ist jede in der Object Klasse definierte Methode in allen Objekten im System verfügbar. Abgeleitete Klassen können einige dieser Methoden außer Kraft setzen, darunter:

  • Equals: Unterstützt Vergleiche zwischen Objekten.
  • Finalize: Führt sauber Upvorgänge aus, bevor ein Objekt automatisch erneut beansprucht wird.
  • GetHashCode: Generiert eine Zahl, die dem Wert des Objekts entspricht, um die Verwendung einer Hashtabelle zu unterstützen.
  • ToString: Stellt eine lesbare Textzeichenfolge her, die eine Instanz der Klasse beschreibt.

Sprachen erfordern in der Regel keine Klasse zum Deklarieren der Vererbung, da die Vererbung Object implizit ist.

Überlegungen zur Leistung

Wenn Sie eine Klasse entwerfen, z. B. eine Auflistung, die einen beliebigen Objekttyp verarbeiten muss, können Sie Klassenmember erstellen, die Instanzen der Object Klasse akzeptieren. Der Prozess des Boxens und Entpackens eines Typs trägt jedoch einen Leistungsaufwand. Wenn Sie wissen, dass Ihre neue Klasse häufig bestimmte Werttypen behandelt, können Sie eine von zwei Taktiken verwenden, um die Kosten des Boxens zu minimieren.

  • Erstellen Sie eine allgemeine Methode, die einen Object Typ akzeptiert, und eine Reihe von typspezifischen Methodenüberladungen, die jeden Werttyp akzeptieren, den Ihre Klasse häufig behandeln soll. Wenn eine typspezifische Methode vorhanden ist, die den aufrufenden Parametertyp akzeptiert, tritt kein Boxing auf, und die typspezifische Methode wird aufgerufen. Wenn kein Methodenargument vorhanden ist, das dem aufrufenden Parametertyp entspricht, wird der Parameter boxt und die allgemeine Methode aufgerufen.
  • Entwerfen Sie Ihren Typ und die zugehörigen Elemente so, dass Generika verwendet werden. Die Common Language Runtime erstellt einen geschlossenen generischen Typ, wenn Sie eine Instanz Ihrer Klasse erstellen und ein generisches Typargument angeben. Die generische Methode ist typspezifisch und kann ohne Boxen des aufrufenden Parameters aufgerufen werden.

Obwohl es manchmal erforderlich ist, allgemeine Klassen zu entwickeln, die Akzeptiert- und Rückgabetypen akzeptieren und zurückgeben Object , können Sie die Leistung verbessern, indem Sie auch eine typspezifische Klasse bereitstellen, um einen häufig verwendeten Typ zu behandeln. Wenn Sie beispielsweise eine Klasse bereitstellen, die für das Festlegen und Abrufen boolescher Werte spezifisch ist, werden die Kosten für das Boxen und Aufheben des Posteingangs boolescher Werte beseitigt.