Třída System.Object

Poznámka:

Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.

Třída Object je nejvyšší základní třídou všech tříd .NET; je kořenem hierarchie typů.

Vzhledem k tomu, že všechny třídy v .NET jsou odvozeny od Object, každá metoda definovaná ve Object třídě je k dispozici ve všech objektech v systému. Odvozené třídy mohou a také přepisují některé z těchto metod, včetně:

  • Equals: Podporuje porovnání mezi objekty.
  • Finalize: Provádí operace čištění před automatickým uvolněním objektu.
  • GetHashCode: Vygeneruje číslo odpovídající hodnotě objektu pro podporu použití hashovací tabulky.
  • ToString: Vyrábí textový řetězec čitelný člověkem, který popisuje instanci třídy.

Jazyky obvykle nevyžadují, aby třída deklarovala dědičnost z Object, protože dědičnost je implicitní.

Důležité informace o výkonu

Pokud navrhujete třídu, například kolekci, která musí zpracovávat jakýkoli typ objektu, můžete vytvořit členy třídy, které přijímají instance Object třídy. Proces balení a rozbalení typu ale nese náklady na výkon. Pokud víte, že vaše nová třída bude často zpracovávat určité typy hodnot, můžete použít jednu ze dvou taktik k minimalizaci nákladů na boxování.

  • Vytvořte obecnou metodu, která přijímá typ Object a sadu přetížení metod specifických pro daný typ, které přijímají jednotlivé typy hodnot, s nimiž vaše třída pravděpodobně bude často pracovat. Pokud existuje metoda specifická pro typ typu, která přijímá typ volajícího parametru, nedojde k žádnému boxování a vyvolá se metoda specifická pro typ. Pokud neexistuje žádný argument metody, který odpovídá typu volaného parametru, parametr je zabalen a obecná metoda je vyvolána.
  • Navrhněte typ a jeho členy tak, aby používaly obecné typy. Když vytvoříte instanci třídy a zadáte argument obecného typu, modul CLR (Common Language Runtime) vytvoří uzavřený obecný typ. Obecná metoda je specifická pro typ a lze ji použít bez boxování parametru volání.

I když je někdy nutné vyvíjet třídy pro obecné účely, které přijímají a vracejí Object typy, můžete zvýšit výkon také poskytnutím třídy specifické pro typ pro zpracování často používaného typu. Například poskytnutí třídy, která je specifická pro nastavení a získání logických hodnot, eliminuje náklady na boxování a rozbalení logických hodnot.