System.Object – třída
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 přepsat 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í třídu k deklaraci dědičnosti, 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 Object , která přijímá typ, a sadu přetížení metody specifické pro typ, které přijímají každý typ hodnoty, který očekáváte, že vaše třída bude často zpracovávat. 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 volajícího parametru, parametr je boxed a je vyvolána obecná metoda.
- Navrhněte typ a jeho členy tak, aby používaly obecné typy. Modul CLR (Common Language Runtime) při vytváření instance třídy vytvoří uzavřený obecný typ a zadá argument obecného typu. Obecná metoda je specifická pro typ a lze ji vyvolat bez boxování volajícího parametru.
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.