System.Object classe

Observação

Este artigo fornece observações complementares à documentação de referência para esta API.

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

Como todas as classes no .NET são derivadas do Object, cada método definido na Object classe está disponível em todos os objetos no sistema. As classes derivadas podem substituir alguns desses métodos, incluindo:

  • Equals: Suporta 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 suportar o 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 criando uma classe, como uma coleção, que deve manipular qualquer tipo de objeto, poderá criar membros de classe que aceitem instâncias da Object classe. No entanto, o processo de boxe e unboxing de um tipo tem um custo de desempenho. Se você sabe que sua nova classe lidará frequentemente com certos tipos de valor, você pode usar uma das duas táticas para minimizar o custo do boxe.

  • Crie um método geral que aceite um Object tipo e um conjunto de sobrecargas de método específicas do tipo que aceitem cada tipo de valor que você espera que sua classe manipule com freqüência. Se existir um método específico para o tipo que aceite o tipo de parâmetro de chamada, não ocorrerá boxing e o método específico para o 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.
  • Projete seu tipo e seus membros para 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 do tipo e pode ser invocado sem encaixotar o parâmetro de chamada.

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