Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Den här artikeln innehåller ytterligare kommentarer till referensdokumentationen för det här API:et.
Klassen är den ultimata basklassen för alla .NET-klasser. Det Object är roten i typhierarkin.
Eftersom alla klasser i .NET härleds från Objectär varje metod som definierats i Object klassen tillgänglig i alla objekt i systemet. Härledda klasser kan och åsidosätter vissa av dessa metoder, bland annat:
- Equals: Stöder jämförelser mellan objekt.
- Finalize: Utför rensningsåtgärder innan ett objekt återtas automatiskt.
- GetHashCode: Genererar ett tal som motsvarar objektets värde för att stödja användningen av en hash-tabell.
- ToString: Tillverkar en textsträng som kan läsas av människor och som beskriver en instans av klassen.
Språk kräver vanligtvis inte att en klass deklarerar arv från Object eftersom arvet är implicit.
Prestandaöverväganden
Om du utformar en klass, till exempel en samling, som måste hantera alla typer av objekt, kan du skapa klassmedlemmar som accepterar instanser av Object klassen. Men processen med boxning och avboxning av en typ medför en prestandakostnad. Om du vet att din nya klass ofta hanterar vissa värdetyper kan du använda en av två taktiker för att minimera kostnaden för boxning.
- Skapa en allmän metod som accepterar en Object typ och en uppsättning typspecifika metodöverlagringar som accepterar varje värdetyp som du förväntar dig att klassen ska hantera ofta. Om det finns en typspecifik metod som accepterar den anropande parametertypen sker ingen boxning och den typspecifika metoden anropas. Om det inte finns något metodargument som matchar den anropande parametertypen boxas parametern och den allmänna metoden anropas.
- Utforma din typ och dess medlemmar så att de använder generiska objekt. Den vanliga språkkörningen skapar en sluten allmän typ när du skapar en instans av klassen och anger ett allmänt typargument. Den generiska metoden är typspecifik och kan anropas utan att behöva boxa den anropande parametern.
Även om det ibland är nödvändigt att utveckla klasser för generell användning som accepterar och returnerar Object typer, kan du förbättra prestandan genom att även tillhandahålla en typspecifik klass för att hantera en typ som används ofta. Att tillhandahålla en klass som är specifik för att ange och hämta booleska värden eliminerar kostnaden för boxning och avboxning av booleska värden.