System.Object-klasse

Opmerking

In dit artikel vindt u aanvullende opmerkingen in de referentiedocumentatie voor deze API.

De Object klasse is de ultieme basisklasse van alle .NET-klassen; het is de wortel van de typehiërarchie.

Omdat alle klassen in .NET zijn afgeleid van Object, is elke methode die in de Object klasse is gedefinieerd, beschikbaar in alle objecten in het systeem. Afgeleide klassen kunnen een aantal van deze methoden overschrijven, waaronder:

  • Equals: ondersteunt vergelijkingen tussen objecten.
  • Finalize: Voert opschoonbewerkingen uit voordat een object automatisch wordt vrijgemaakt.
  • GetHashCode: Genereert een getal dat overeenkomt met de waarde van het object ter ondersteuning van het gebruik van een hash-tabel.
  • ToString: Maakt een voor mensen leesbare tekenreeks die een instantie van de klasse beschrijft.

Talen vereisen doorgaans geen klasse om overname van Object te declareren omdat de overname impliciet is.

Prestatie-overwegingen

Als u een klasse, zoals een verzameling, ontwerpt die elk type object moet verwerken, kunt u klasseleden maken die exemplaren van de Object klasse accepteren. Het proces van het boksen en uitpakken van een type brengt echter prestatiekosten met zich mee. Als u weet dat uw nieuwe klasse vaak bepaalde waardetypen afhandelt, kunt u een van de twee tactieken gebruiken om de kosten van boksen te minimaliseren.

  • Maak een algemene methode die een Object type accepteert en een set typespecifieke methodeoverbelastingen die elk waardetype accepteren dat u verwacht dat uw klasse regelmatig wordt verwerkt. Als er een typespecifieke methode bestaat die het type van de aanroepende parameter accepteert, vindt er geen boxing plaats en wordt de typespecifieke methode aangeroepen. Als er geen methodeargument is dat overeenkomt met het type van de oproepparameter, wordt de parameter geboxed en wordt de algemene methode aangeroepen.
  • Ontwerp uw type en de leden ervan om generieken te gebruiken. De algemene taalruntime maakt een gesloten algemeen type wanneer u een exemplaar van uw klasse maakt en een algemeen typeargument opgeeft. De algemene methode is typespecifiek en kan worden aangeroepen zonder de aanroepende parameter te boksen.

Hoewel het soms nodig is om klassen voor algemeen gebruik te ontwikkelen die typen accepteren en retourneren Object , kunt u de prestaties verbeteren door ook een typespecifieke klasse te bieden voor het afhandelen van een veelgebruikt type. Als u bijvoorbeeld een klasse biedt die specifiek is voor het instellen en ophalen van booleaanse waarden, worden de kosten van het wrappen en uitpakken van deze waarden geëlimineerd.