Compartilhar via


Escolhendo entre Classes e estruturas

Classes são tipos de referência e estruturas são tipos de valor. Tipos de referência são alocados na pilha e o gerenciamento de memória é tratado pelo coletor de lixo. Os tipos de valor são alocados na pilha ou in-line e são desalocados saem do escopo. Em geral, os tipos de valor são mais baratos alocar e desalocar. No entanto, se forem usados em cenários que exigem uma quantidade significativa de boxing e unboxing, eles insatisfatório em relação aos tipos de referência. Para obter mais informações, consulte Boxing e Unboxing (TRANSLATION FROM VPE FOR CSHARP guia de programação).

Para obter informações adicionais sobre os tipos de valor e tipos de referência, consulte o Common Type System.

Considere a definição de uma estrutura em vez de uma classe se instâncias do tipo são pequenos e normalmente de curta duração ou normalmente são incorporadas em outros objetos.

Não defina uma estrutura tipo tem todas as seguintes características:

  • Logicamente, ele representa um único valor, semelhante a tipos primitivos (inteiro, duplo e assim por diante).

  • Ele tem um tamanho de instância menores que 16 bytes.

  • É imutável.

  • Ele não terá de ser in a box com freqüência.

Se um ou mais dessas condições não forem atendidas, crie um tipo de referência em vez de uma estrutura. Falha em atender a essa diretriz pode afetar negativamente o desempenho.

Portions Copyright 2005 Microsoft Corporation. Todos os direitos reservados.

Portions Copyright Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre as diretrizes de design, consulte a "diretrizes de Design do Framework: Convenções, idiomas e padrões de reutilizável.Bibliotecas de rede" catálogo por Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Outros recursos

Diretrizes de Design do tipo

Diretrizes de Design para desenvolvimento bibliotecas de classe