Compartilhar via


Classe System.Object

Este artigo fornece comentários complementares à documentação de referência para esta API.

A Object classe é a classe base final de todas as classes .NET; ela é a raiz da hierarquia de tipos.

Como todas as classes no .NET são derivadas de Object, todos os métodos definidos na classe Object estão disponíveis em todos os objetos no sistema. Classes derivadas podem e substituem alguns desses métodos, incluindo:

  • Equals: dá suporte a comparações entre objetos.
  • Finalize: executa operações de limpeza antes que um objeto seja recuperado automaticamente.
  • GetHashCode: gera um número correspondente ao valor do objeto para dar suporte ao uso de uma tabela de hash.
  • ToString: fabrica uma cadeia de caracteres de texto legível por humanos que descreve uma instância da classe.

As linguagens normalmente não exigem que uma classe declare herança de Object, porque a herança está implícita.

Considerações sobre desempenho

Se você estiver projetando uma classe, como uma coleção, que deve lidar com qualquer tipo de objeto, você pode criar membros de classe que aceitam instâncias da Object classe. No entanto, o processo de isolar e soltar um tipo carrega um custo de desempenho. Se você souber que sua nova classe lidará frequentemente com determinados tipos de valor, poderá usar uma das duas táticas para minimizar o custo do isolamento.

  • Crie um método geral que aceite um Object tipo e um conjunto de sobrecargas de método específicas de tipo que aceitem cada tipo de valor que você espera que sua classe manipule com frequência. Se existir um método específico de tipo que aceite o tipo de parâmetro de chamada, nenhum isolamento ocorrerá e o método específico do tipo será invocado. Se não houver nenhum argumento de método que corresponda ao tipo de parâmetro de chamada, o parâmetro será colocado em caixa e o método geral será invocado.
  • Crie seu tipo e os membros de forma a usar genéricos. O common language runtime cria um tipo genérico fechado quando você cria uma instância de sua classe e especifica um argumento de tipo genérico. O método genérico é específico de tipo e pode ser invocado sem isolar o parâmetro de chamada.

Embora às vezes seja necessário desenvolver classes de uso geral que aceitam e retornam Object tipos, você também pode melhorar o desempenho fornecendo uma classe específica de tipo para lidar com um tipo usado com frequência. Por exemplo, fornecer uma classe específica para definir e obter valores booleanos elimina o custo de encaixotamento e desempacotamento de valores booleanos.